From: Yongpeng Yang <[email protected]> Add support to clear or set extent flags through ioctl for the inline extent feature. This allows users to enable or disable inline extent format on individual files via the f2fs_io tool.
Signed-off-by: Yongpeng Yang <[email protected]> --- tools/f2fs_io/f2fs_io.c | 16 ++++++++++++++-- tools/f2fs_io/f2fs_io.h | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c index 94e61b8..1a8c6a2 100644 --- a/tools/f2fs_io/f2fs_io.c +++ b/tools/f2fs_io/f2fs_io.c @@ -317,6 +317,12 @@ static void do_getflags(int argc, char **argv, const struct cmd_desc *cmd) printf("immutable"); exist = 1; } + if (flag & FS_EXTENT_FL) { + if (exist) + printf(","); + printf("extent"); + exist = 1; + } if (!exist) printf("none"); printf("\n"); @@ -332,7 +338,8 @@ static void do_getflags(int argc, char **argv, const struct cmd_desc *cmd) " compression\n" \ " nocompression\n" \ " immutable\n" \ -" nocow\n" +" nocow\n" \ +" extent\n" static void do_setflags(int argc, char **argv, const struct cmd_desc *cmd) { @@ -362,6 +369,8 @@ static void do_setflags(int argc, char **argv, const struct cmd_desc *cmd) flag |= FS_IMMUTABLE_FL; else if (!strcmp(argv[1], "nocow")) flag |= FS_NOCOW_FL; + else if (!strcmp(argv[1], "extent")) + flag |= FS_EXTENT_FL; ret = ioctl(fd, F2FS_IOC_SETFLAGS, &flag); printf("set a flag on %s ret=%d, flags=%s\n", argv[2], ret, argv[1]); @@ -378,7 +387,8 @@ static void do_setflags(int argc, char **argv, const struct cmd_desc *cmd) " compression\n" \ " nocompression\n" \ " immutable\n" \ -" nocow\n" +" nocow\n" \ +" extent\n" static void do_clearflags(int argc, char **argv, const struct cmd_desc *cmd) { @@ -406,6 +416,8 @@ static void do_clearflags(int argc, char **argv, const struct cmd_desc *cmd) flag &= ~FS_IMMUTABLE_FL; else if (!strcmp(argv[1], "nocow")) flag &= ~FS_NOCOW_FL; + else if (!strcmp(argv[1], "extent")) + flag &= ~FS_EXTENT_FL; ret = ioctl(fd, F2FS_IOC_SETFLAGS, &flag); printf("clear a flag on %s ret=%d, flags=%s\n", argv[2], ret, argv[1]); diff --git a/tools/f2fs_io/f2fs_io.h b/tools/f2fs_io/f2fs_io.h index 539964f..5e85dc7 100644 --- a/tools/f2fs_io/f2fs_io.h +++ b/tools/f2fs_io/f2fs_io.h @@ -222,6 +222,9 @@ enum { #ifndef FS_NOCOW_FL #define FS_NOCOW_FL 0x00800000 /* Do not cow file */ #endif +#ifndef FS_EXTENT_FL +#define FS_EXTENT_FL 0x00080000 /* Extent file */ +#endif #ifndef FS_NOCOMP_FL #define FS_NOCOMP_FL 0x00000400 /* Don't compress */ #endif -- 2.43.0 _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
