@@ -2084,6 +2084,7 @@ static void do_setxattr(int argc, char **argv, const struct cmd_desc *cmd)
20842084 int ret , len ;
20852085 char * value ;
20862086 unsigned char tmp ;
2087+ unsigned int tmp_u ;
20872088
20882089 if (argc != 4 ) {
20892090 fputs ("Excess arguments\n\n" , stderr );
@@ -2095,6 +2096,10 @@ static void do_setxattr(int argc, char **argv, const struct cmd_desc *cmd)
20952096 tmp = strtoul (argv [2 ], NULL , 0 );
20962097 value = (char * )& tmp ;
20972098 len = 1 ;
2099+ } else if (!strcmp (argv [1 ], F2FS_USER_FADVISE_NAME )) {
2100+ tmp_u = strtoul (argv [2 ], NULL , 0 );
2101+ value = (unsigned char * )& tmp_u ;
2102+ len = sizeof (unsigned int );
20982103 } else {
20992104 value = argv [2 ];
21002105 len = strlen (value );
@@ -2217,6 +2222,33 @@ static void do_get_advise(int argc, char **argv, const struct cmd_desc *cmd)
22172222 printf ("\n" );
22182223}
22192224
2225+ #define get_fadvise_desc "get_fadvise"
2226+ #define get_fadvise_help "f2fs_io get_fadvise [file_path]\n\n"
2227+
2228+ static void do_get_fadvise (int argc , char * * argv , const struct cmd_desc * cmd )
2229+ {
2230+ int ret ;
2231+ unsigned char value ;
2232+
2233+ if (argc != 2 ) {
2234+ fputs ("Excess arguments\n\n" , stderr );
2235+ fputs (cmd -> cmd_help , stderr );
2236+ exit (1 );
2237+ }
2238+
2239+ ret = getxattr (argv [1 ], F2FS_USER_FADVISE_NAME , & value , sizeof (value ));
2240+ if (ret != sizeof (value )) {
2241+ perror ("getxattr" );
2242+ exit (1 );
2243+ }
2244+
2245+ printf ("fadvise=0x%x, advise_type: " , value );
2246+ if (value & BIT (F2FS_XATTR_FADV_LARGEFOLIO )
2247+ printf ("largefolio" );
2248+ printf ("\n" );
2249+ }
2250+
2251+
22202252#define ftruncate_desc "ftruncate a file"
22212253#define ftruncate_help \
22222254"f2fs_io ftruncate [length] [file_path]\n\n" \
@@ -2626,6 +2658,7 @@ const struct cmd_desc cmd_list[] = {
26262658 CMD (removexattr ),
26272659 CMD (lseek ),
26282660 CMD (get_advise ),
2661+ CMD (get_fadvise ),
26292662 CMD (ioprio ),
26302663 CMD (ftruncate ),
26312664 CMD (test_create_perf ),
0 commit comments