diff mbox series

[f2fs-dev,v2] f2fs_io: add fdatasync

Message ID c77bb0626adad3e7c7c0ef7b9e338b2b465dc3ed.1727582346.git.weilongping@oppo.com (mailing list archive)
State New
Headers show
Series [f2fs-dev,v2] f2fs_io: add fdatasync | expand

Commit Message

LongPing Wei Sept. 29, 2024, 6:17 a.m. UTC
Signed-off-by: LongPing Wei <weilongping@oppo.com>
---
v2: update manual of f2fs_io
---
 man/f2fs_io.8           |  6 ++++++
 tools/f2fs_io/f2fs_io.c | 25 +++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

Comments

Chao Yu Oct. 8, 2024, 2:54 a.m. UTC | #1
On 2024/9/29 14:17, LongPing Wei wrote:
> Signed-off-by: LongPing Wei <weilongping@oppo.com>

Reviewed-by: Chao Yu <chao@kernel.org>

Thanks,
diff mbox series

Patch

diff --git a/man/f2fs_io.8 b/man/f2fs_io.8
index b9c9dc8..124d662 100644
--- a/man/f2fs_io.8
+++ b/man/f2fs_io.8
@@ -11,6 +11,12 @@  administrative purposes.
 \fBset_verity\fR \fI[file]\fR
 Set the verity flags associated with the specified file.
 .TP
+\fBfsync\fR \fI[file]\fR
+fsync given the file.
+.TP
+\fBfdatasync\fR \fI[file]\fR
+fdatasync given the file.
+.TP
 \fBgetflags\fR \fI[file]\fR
 Get the flags associated with the specified file.
 .TP
diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
index 94f0adf..8fbad3c 100644
--- a/tools/f2fs_io/f2fs_io.c
+++ b/tools/f2fs_io/f2fs_io.c
@@ -174,6 +174,30 @@  static void do_fsync(int argc, char **argv, const struct cmd_desc *cmd)
 	exit(0);
 }
 
+#define fdatasync_desc "fdatasync"
+#define fdatasync_help						\
+"f2fs_io fdatasync [file]\n\n"					\
+"fdatasync given the file\n"					\
+
+static void do_fdatasync(int argc, char **argv, const struct cmd_desc *cmd)
+{
+	int fd;
+
+	if (argc != 2) {
+		fputs("Excess arguments\n\n", stderr);
+		fputs(cmd->cmd_help, stderr);
+		exit(1);
+	}
+
+	fd = xopen(argv[1], O_WRONLY, 0);
+
+	if (fdatasync(fd) != 0)
+		die_errno("fdatasync failed");
+
+	printf("fdatasync a file\n");
+	exit(0);
+}
+
 #define set_verity_desc "Set fs-verity"
 #define set_verity_help					\
 "f2fs_io set_verity [file]\n\n"				\
@@ -1808,6 +1832,7 @@  static void do_help(int argc, char **argv, const struct cmd_desc *cmd);
 const struct cmd_desc cmd_list[] = {
 	_CMD(help),
 	CMD(fsync),
+	CMD(fdatasync),
 	CMD(set_verity),
 	CMD(getflags),
 	CMD(setflags),