From: Konstantin Vyshetsky <v...@google.com>

Adjust behavior to match kernel.

Signed-off-by: Konstantin Vyshetsky <v...@google.com>
Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org>
---
 tools/f2fs_io/f2fs_io.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
index a5e151d06b10..1df9034acdd9 100644
--- a/tools/f2fs_io/f2fs_io.c
+++ b/tools/f2fs_io/f2fs_io.c
@@ -1588,10 +1588,13 @@ static void do_listxattr(int argc, char **argv, const 
struct cmd_desc *cmd)
 
 #define setxattr_desc "setxattr"
 #define setxattr_help "f2fs_io setxattr [name] [value] [file_path]\n\n"
+#define F2FS_SYSTEM_ADVISE_NAME        "system.advise"
 
 static void do_setxattr(int argc, char **argv, const struct cmd_desc *cmd)
 {
        int ret;
+       char *value;
+       unsigned char tmp;
 
        if (argc != 4) {
                fputs("Excess arguments\n\n", stderr);
@@ -1599,11 +1602,18 @@ static void do_setxattr(int argc, char **argv, const 
struct cmd_desc *cmd)
                exit(1);
        }
 
-       ret = setxattr(argv[3], argv[1], argv[2], strlen(argv[2]), 
XATTR_CREATE);
+       if (!strcmp(argv[1], F2FS_SYSTEM_ADVISE_NAME)) {
+               tmp = strtoul(argv[2], NULL, 0);
+               value = (char *)&tmp;
+       } else {
+               value = argv[2];
+       }
+
+       ret = setxattr(argv[3], argv[1], value, strlen(argv[2]), XATTR_CREATE);
        printf("setxattr %s CREATE: name: %s, value: %s: ret=%d\n",
                        argv[3], argv[1], argv[2], ret);
        if (ret < 0 && errno == EEXIST) {
-               ret = setxattr(argv[3], argv[1], argv[2], strlen(argv[2]), 
XATTR_REPLACE);
+               ret = setxattr(argv[3], argv[1], value, strlen(argv[2]), 
XATTR_REPLACE);
                printf("setxattr %s REPLACE: name: %s, value: %s: ret=%d\n",
                                argv[3], argv[1], argv[2], ret);
        }
-- 
2.44.0.rc0.258.g7320e95886-goog



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to