On Sat, Mar 18, 2017 at 05:57:39PM +0530, Abhishek Tiwari wrote:
> On Sat, Mar 18, 2017 at 3:53 PM, Eugene Syromyatnikov <evg...@gmail.com> 
> wrote:
> 
> > So, after some thinking, I have the following scheme in mind:
> >
> > {old,}stat{,64}         TRACE_STAT              TST
> %stat
> 
> > {old,}lstat{,64}        TRACE_LSTAT             TLST
> %lstat
> > {old,new,}fstat{,at}64  TRACE_FSTAT             TFST
> %fstat
> 
> > {old,new,}{,l,f}stat{,x,at}{,64}
> >                         TRACE_STAT_LIKE         TSTA ("stat alike")
> %%stat
> 
> > statfs{,64}             TRACE_STATFS            TSF
> %statfs
> 
> > fstatfs{,64}            TRACE_FSTATFS           TFSF
> 
> %fstatfs
> > {,f}statfs{,64}, ustat  TRACE_STATFS_LIKE       TSFA ("statfs alike")
> >
> %%statfs
> 
> > Calls with bsd43_/osf_/posix_/svr4_/sysv_ prefixes go to the
> > corresponding calls without them.
> >
> > I'm not really sure about {svr4,sysv}_{,f}statvfs, but they are decoded as
> > printargs and looks like they should be related to {,f}statfs calls.
> >
> > Does it make any sense?
> 
> Yes, it looks good...:)
> Please review that for the corresponding option in -e trace=option is
> marked correct described after each of your naming scheme.
Looks good to me.

>  Thank you.
> 
> Below is attached a patch corresonding to -e trace=%statfs option.
> Please review.

git am patch fails to apply this patch with the following diagnostics:

.git/rebase-apply/patch:778: trailing whitespace.
17 statfs 
fatal: 1 line adds whitespace errors.

> From 6d7a5793808fd78db028985e8de68168ef4870c3 Mon Sep 17 00:00:00 2001
> From: Abhishek Tiwari <erabhishektiwar...@gmail.com>
> Date: Sat, 18 Mar 2017 17:29:34 +0530
> Subject: [PATCH v5] Implement -e trace=%statfs option for tracing statfs like
>  syscalls
> 
> This commit adds %statsfs option to trace statfs, statfs64, statvfs, 
> statvfs64 syscalls. The following commands update linux/*/syscallent* files:
> 
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 
> 's/TD\(,[[:space:]]*SEN(statfs\)/TD|TSF\1/'
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 
> 's/TF\(,[[:space:]]*SEN(statfs\)/TF|TSF\1/'
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 
> 's/0\(,[[:space:]]*SEN(osf_statfs\)/TSF\1/'
>       git grep -Fl 'statfs' linux/*/syscallent* | xargs sed -i 
> 's/0\(,[[:space:]]*SEN(.*_statfs\)/TSF\1/'
>       git grep -Fl 'statvfs' linux/*/syscallent* | xargs sed -i 
> 's/0\(,[[:space:]]*SEN(.*_statvfs\)/TSF\1/'
> 
> * sysent.h (TRACE_STATFS): New definition.
> * syscall.c: Alias TSF to TRACE_STATFS around syscallent.h inclusion.
> * linux/32/syscallent.h: Add TSF flag for statfs-like sycalls.
> * linux/64/syscallent.h: Likewise.
> * linux/aarch64/syscallent.h: Likewise.
> * linux/alpha/syscallent.h: Likewise.
> * linux/arm/syscallent.h: Likewise.
> * linux/avr32/syscallent.h: Likewise.
> * linux/bfin/syscallent.h: Likewise.
> * linux/crisv10/syscallent.h: Likewise.
> * linux/hppa/syscallent.h: Likewise.
> * linux/i386/syscallent.h: Likewise.
> * linux/ia64/syscallent.h: Likewise.
> * linux/m68k/syscallent.h: Likewise.
> * linux/microblaze/syscallent.h: Likewise.
> * linux/mips/syscallent-compat.h: Likewise.
> * linux/mips/syscallent-n32.h: Likewise.
> * linux/mips/syscallent-n64.h: Likewise.
> * linux/mips/syscallent-o32.h: Likewise.
> * linux/powerpc/syscallent.h: Likewise.
> * linux/powerpc64/syscallent.h: Likewise.
> * linux/s390/syscallent.h: Likewise.
> * linux/s390x/syscallent.h: Likewise.
> * linux/sh/syscallent.h: Likewise.
> * linux/sh64/syscallent.h: Likewise.
> * linux/sparc/syscallent.h: Likewise.
> * linux/sparc64/syscallent.h: Likewise.
> * linux/x32/syscallent.h: Likewise.
> * linux/x86_64/syscallent.h: Likewise.
> * linux/xtensa/syscallent.h: Likewise.
> * qualify.c (lookup_class): Add SCHED_STATFS for "%statfs"
> * strace.1 (.SS Filtering): Add information about %statfs syscall class.
> * tests/Makefile.am: (DECODER_TESTS): Add trace_statfs.test.
> * tests/ksysent.c: Define TST to 0.
> * tests/nsyscalls.c: Likewise.
> * tests/trace_statfs.test: New test.
> ---
>  linux/32/syscallent.h          |  2 +-
>  linux/64/syscallent.h          |  2 +-
>  linux/aarch64/syscallent.h     |  2 +-
>  linux/alpha/syscallent.h       |  6 ++---
>  linux/arm/syscallent.h         |  4 ++--
>  linux/avr32/syscallent.h       |  4 ++--
>  linux/bfin/syscallent.h        |  4 ++--
>  linux/crisv10/syscallent.h     |  4 ++--
>  linux/hppa/syscallent.h        |  4 ++--
>  linux/i386/syscallent.h        |  4 ++--
>  linux/ia64/syscallent.h        |  4 ++--
>  linux/m68k/syscallent.h        |  4 ++--
>  linux/microblaze/syscallent.h  |  4 ++--
>  linux/mips/syscallent-compat.h | 12 +++++-----
>  linux/mips/syscallent-n32.h    |  4 ++--
>  linux/mips/syscallent-n64.h    |  2 +-
>  linux/mips/syscallent-o32.h    |  4 ++--
>  linux/powerpc/syscallent.h     |  4 ++--
>  linux/powerpc64/syscallent.h   |  4 ++--
>  linux/s390/syscallent.h        |  4 ++--
>  linux/s390x/syscallent.h       |  4 ++--
>  linux/sh/syscallent.h          |  4 ++--
>  linux/sh64/syscallent.h        |  4 ++--
>  linux/sparc/syscallent.h       |  4 ++--
>  linux/sparc64/syscallent.h     |  4 ++--
>  linux/x32/syscallent.h         |  2 +-
>  linux/x86_64/syscallent.h      |  2 +-
>  linux/xtensa/syscallent.h      |  4 ++--
>  qualify.c                      |  1 +
>  strace.1                       |  3 +++
>  syscall.c                      |  2 ++
>  sysent.h                       |  1 +
>  tests/Makefile.am              |  1 +
>  tests/ksysent.c                |  1 +
>  tests/nsyscalls.c              |  1 +
>  tests/trace_statfs.test        | 54 
> ++++++++++++++++++++++++++++++++++++++++++
>  36 files changed, 119 insertions(+), 55 deletions(-)
>  create mode 100755 tests/trace_statfs.test
> 
> diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
> index a8f9510..7beef25 100644
> --- a/linux/32/syscallent.h
> +++ b/linux/32/syscallent.h
> @@ -44,7 +44,7 @@
>  [ 40] = { 5, TF,             SEN(mount),                     "mount"         
>         },
>  [ 41] = { 2, TF,             SEN(pivotroot),                 "pivot_root"    
>         },
>  [ 42] = { 3, 0,              SEN(nfsservctl),                "nfsservctl"    
>         },
> -[ 43] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[ 43] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [ 44] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [ 45] = { 3, TF,             SEN(truncate64),                "truncate64"    
>         },
>  [ 46] = { 3, TD,             SEN(ftruncate64),               "ftruncate64"   
>         },
> diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
> index b5a09d4..e377431 100644
> --- a/linux/64/syscallent.h
> +++ b/linux/64/syscallent.h
> @@ -41,7 +41,7 @@
>  [ 40] = { 5, TF,             SEN(mount),                     "mount"         
>         },
>  [ 41] = { 2, TF,             SEN(pivotroot),                 "pivot_root"    
>         },
>  [ 42] = { 3, 0,              SEN(nfsservctl),                "nfsservctl"    
>         },
> -[ 43] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 43] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [ 44] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [ 45] = { 2, TF,             SEN(truncate),                  "truncate"      
>         },
>  [ 46] = { 2, TD,             SEN(ftruncate),                 "ftruncate"     
>         },
> diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h
> index 6b23f8c..e760fdc 100644
> --- a/linux/aarch64/syscallent.h
> +++ b/linux/aarch64/syscallent.h
> @@ -45,7 +45,7 @@
>  [1053] = { 4,        TD,             SEN(fadvise64),         "fadvise64"     
> },
>  [1054] = { 4,        TD|TF,          SEN(newfstatat),        "newfstatat"    
> },
>  [1055] = { 2,        TD,             SEN(fstatfs),           "fstatfs"       
> },
> -[1056] = { 2,        TF,             SEN(statfs),            "statfs"        
> },
> +[1056] = { 2,        TF|TSF,         SEN(statfs),            "statfs"        
> },
>  [1057] = { 3,        TD,             SEN(lseek),             "lseek"         
> },
>  [1058] = { 6,        TD|TM|SI,       SEN(mmap),              "mmap"          
> },
>  [1059] = { 1,        0,              SEN(alarm),             "alarm"         
> },
> diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
> index 4449f22..18f1866 100644
> --- a/linux/alpha/syscallent.h
> +++ b/linux/alpha/syscallent.h
> @@ -185,7 +185,7 @@
>  [157] = { 5, 0,              SEN(printargs),                 
> "osf_sigwaitprim"       }, /*not implemented */
>  [158] = { 5, 0,              SEN(printargs),                 "osf_nfssvc"    
>         }, /*not implemented */
>  [159] = { 4, 0,              SEN(printargs),                 
> "osf_getdirentries"     },
> -[160] = { 3, 0,              SEN(osf_statfs),                "osf_statfs"    
>         },
> +[160] = { 3, TSF,            SEN(osf_statfs),                "osf_statfs"    
>         },
>  [161] = { 3, 0,              SEN(osf_fstatfs),               "osf_fstatfs"   
>         },
>  [162] = { },
>  [163] = { 5, 0,              SEN(printargs),                 
> "osf_asynch_daemon"     }, /*not implemented */
> @@ -230,7 +230,7 @@
>  [224] = { 5, 0,              SEN(printargs),                 "osf_stat"      
>         }, /*not implemented */
>  [225] = { 5, 0,              SEN(printargs),                 "osf_lstat"     
>         }, /*not implemented */
>  [226] = { 5, 0,              SEN(printargs),                 "osf_fstat"     
>         }, /*not implemented */
> -[227] = { 3, 0,              SEN(osf_statfs),                "osf_statfs64"  
>         }, /*not implemented */
> +[227] = { 3, TSF,            SEN(osf_statfs),                "osf_statfs64"  
>         }, /*not implemented */
>  [228] = { 3, 0,              SEN(osf_fstatfs),               "osf_fstatfs64" 
>         }, /*not implemented */
>  [229 ... 232] = { },
>  [233] = { 1, 0,              SEN(getpgid),                   "getpgid"       
>         },
> @@ -291,7 +291,7 @@
>  [325] = { 1, NF,             SEN(setfsuid),                  "setfsuid"      
>         },
>  [326] = { 1, NF,             SEN(setfsgid),                  "setfsgid"      
>         },
>  [327] = { 2, 0,              SEN(ustat),                     "ustat"         
>         },
> -[328] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[328] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [329] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [330] = { 2, TSC,            SEN(sched_setparam),            
> "sched_setparam"        },
>  [331] = { 2, TSC,            SEN(sched_getparam),            
> "sched_getparam"        },
> diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
> index ed9ec9a..ef11d5f 100644
> --- a/linux/arm/syscallent.h
> +++ b/linux/arm/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -290,7 +290,7 @@
>  [263] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [264] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [265] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[266] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[266] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [267] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [268] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [269] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
> index 7f50934..6f49054 100644
> --- a/linux/avr32/syscallent.h
> +++ b/linux/avr32/syscallent.h
> @@ -124,7 +124,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, TP,             SEN(wait4),                     "wait4"         
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 0, 0,              SEN(vhangup),                   "vhangup"       
>         },
>  [102] = { 2, TS,             SEN(sigaltstack),               "sigaltstack"   
>         },
> @@ -244,7 +244,7 @@
>  [216] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [217] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [218] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[219] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[219] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [220] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [221] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [222] = { },
> diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
> index 800b943..a70dd8b 100644
> --- a/linux/bfin/syscallent.h
> +++ b/linux/bfin/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -294,7 +294,7 @@
>  [266] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [267] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [268] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[269] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[269] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [270] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [271] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [272] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/crisv10/syscallent.h b/linux/crisv10/syscallent.h
> index 96fb6bd..695b4d0 100644
> --- a/linux/crisv10/syscallent.h
> +++ b/linux/crisv10/syscallent.h
> @@ -97,7 +97,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -262,7 +262,7 @@
>  [265] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [266] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [267] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[268] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[268] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [269] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [270] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [271] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
> index f59ea57..9ff420c 100644
> --- a/linux/hppa/syscallent.h
> +++ b/linux/hppa/syscallent.h
> @@ -101,7 +101,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, TN,             SEN(recv),                      "recv"          
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 2, TF,             SEN(stat64),                    "stat64"        
>         },
>  [102] = { },
> @@ -300,7 +300,7 @@
>  [295] = { 6, TM,             SEN(move_pages),                "move_pages"    
>         },
>  [296] = { 3, 0,              SEN(getcpu),                    "getcpu"        
>         },
>  [297] = { 6, TD,             SEN(epoll_pwait),               "epoll_pwait"   
>         },
> -[298] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[298] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [299] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [300] = { 4, 0,              SEN(kexec_load),                "kexec_load"    
>         },
>  [301] = { 4, TD|TF,          SEN(utimensat),                 "utimensat"     
>         },
> diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
> index 8ef1b1c..a79dcc8 100644
> --- a/linux/i386/syscallent.h
> +++ b/linux/i386/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -293,7 +293,7 @@
>  [265] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [266] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [267] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[268] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[268] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [269] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [270] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [271] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
> index 47b71d6..96e5fd3 100644
> --- a/linux/ia64/syscallent.h
> +++ b/linux/ia64/syscallent.h
> @@ -120,7 +120,7 @@
>  [1100] = { 3,        TD,             SEN(fchown),                    
> "fchown"                },
>  [1101] = { 2,        0,              SEN(getpriority),               
> "getpriority"           },
>  [1102] = { 3,        0,              SEN(setpriority),               
> "setpriority"           },
> -[1103] = { 2,        TF,             SEN(statfs),                    
> "statfs"                },
> +[1103] = { 2,        TF|TSF,         SEN(statfs),                    
> "statfs"                },
>  [1104] = { 2,        TD,             SEN(fstatfs),                   
> "fstatfs"               },
>  [1105] = { 0,        NF,             SEN(gettid),                    
> "gettid"                },
>  [1106] = { 3,        TI,             SEN(semget),                    
> "semget"                },
> @@ -275,7 +275,7 @@
>  [1255] = { 2,        0,              SEN(clock_getres),              
> "clock_getres"          },
>  [1256] = { 4,        0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
>  [1257] = { 3,        TD,             SEN(fstatfs64),                 
> "fstatfs64"             },
> -[1258] = { 3,        TF,             SEN(statfs64),                  
> "statfs64"              },
> +[1258] = { 3,        TF|TSF,         SEN(statfs64),                  
> "statfs64"              },
>  [1259] = { 6,        TM,             SEN(mbind),                     "mbind" 
>                 },
>  [1260] = { 5,        TM,             SEN(get_mempolicy),             
> "get_mempolicy"         },
>  [1261] = { 3,        TM,             SEN(set_mempolicy),             
> "set_mempolicy"         },
> diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
> index 8e7dd97..42c1d1a 100644
> --- a/linux/m68k/syscallent.h
> +++ b/linux/m68k/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -288,7 +288,7 @@
>  [260] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [261] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [262] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[263] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[263] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [264] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [265] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [266] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
> index 2a59eb3..cb5bd78 100644
> --- a/linux/microblaze/syscallent.h
> +++ b/linux/microblaze/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -293,7 +293,7 @@
>  [265] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [266] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [267] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[268] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[268] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [269] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [270] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [271] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h
> index 82a373b..ac408fd 100644
> --- a/linux/mips/syscallent-compat.h
> +++ b/linux/mips/syscallent-compat.h
> @@ -33,7 +33,7 @@
>  [  32] = { 0,        0,      SEN(printargs),         "svr4_gtty"     },
>  [  33] = { 0,        0,      SEN(printargs),         "svr4_access"   },
>  [  34] = { 0,        0,      SEN(printargs),         "svr4_nice"     },
> -[  35] = { 0,        0,      SEN(printargs),         "svr4_statfs"   },
> +[  35] = { 0,        TSF,    SEN(printargs),         "svr4_statfs"   },
>  [  36] = { 0,        0,      SEN(printargs),         "svr4_sync"     },
>  [  37] = { 0,        0,      SEN(printargs),         "svr4_kill"     },
>  [  38] = { 0,        0,      SEN(printargs),         "svr4_fstatfs"  },
> @@ -96,7 +96,7 @@
>  [ 100] = { 0,        0,      SEN(printargs),         "svr4_setcontext"       
> },
>  [ 101] = { 0,        0,      SEN(printargs),         "svr4_evsys"    },
>  [ 102] = { 0,        0,      SEN(printargs),         "svr4_evtrapret"        
> },
> -[ 103] = { 0,        0,      SEN(printargs),         "svr4_statvfs"  },
> +[ 103] = { 0,        TSF,    SEN(printargs),         "svr4_statvfs"  },
>  [ 104] = { 0,        0,      SEN(printargs),         "svr4_fstatvfs" },
>  [ 105] = { },
>  [ 106] = { 0,        0,      SEN(printargs),         "svr4_nfssys"   },
> @@ -184,7 +184,7 @@
>  [1032] = { 0,        0,      SEN(printargs),         "sysv_gtty"     },
>  [1033] = { 0,        0,      SEN(printargs),         "sysv_access"   },
>  [1034] = { 0,        0,      SEN(printargs),         "sysv_nice"     },
> -[1035] = { 0,        0,      SEN(printargs),         "sysv_statfs"   },
> +[1035] = { 0,        TSF,    SEN(printargs),         "sysv_statfs"   },
>  [1036] = { 0,        0,      SEN(printargs),         "sysv_sync"     },
>  [1037] = { 0,        0,      SEN(printargs),         "sysv_kill"     },
>  [1038] = { 0,        0,      SEN(printargs),         "sysv_fstatfs"  },
> @@ -318,7 +318,7 @@
>  [1171] = { 0,        0,      SEN(printargs),         "sysv_sigstack" },
>  [1172] = { 0,        0,      SEN(printargs),         "sysv_sigaltstack"      
> },
>  [1173] = { 0,        0,      SEN(printargs),         "sysv_sigsendset"       
> },
> -[1174] = { 0,        0,      SEN(printargs),         "sysv_statvfs"  },
> +[1174] = { 0,        TSF,    SEN(printargs),         "sysv_statvfs"  },
>  [1175] = { 0,        0,      SEN(printargs),         "sysv_fstatvfs" },
>  [1176] = { 0,        0,      SEN(printargs),         "sysv_getpmsg"  },
>  [1177] = { 0,        0,      SEN(printargs),         "sysv_putpmsg"  },
> @@ -494,7 +494,7 @@
>  [2157] = { 0,        0,      SEN(printargs),         "bsd43_nfs_mount"       
> },
>  [2158] = { 0,        0,      SEN(printargs),         "bsd43_nfs_svc" },
>  [2159] = { 0,        0,      SEN(printargs),         "bsd43_getdirentries"   
> },
> -[2160] = { 0,        0,      SEN(printargs),         "bsd43_statfs"  },
> +[2160] = { 0,        TSF,    SEN(printargs),         "bsd43_statfs"  },
>  [2161] = { 0,        0,      SEN(printargs),         "bsd43_fstatfs" },
>  [2162] = { 0,        0,      SEN(printargs),         "bsd43_unmount" },
>  [2163] = { 0,        0,      SEN(printargs),         "bsd43_async_daemon"    
> },
> @@ -562,7 +562,7 @@
>  [3032] = { 0,        0,      SEN(printargs),         "posix_gtty"    },
>  [3033] = { 0,        0,      SEN(printargs),         "posix_access"  },
>  [3034] = { 0,        0,      SEN(printargs),         "posix_nice"    },
> -[3035] = { 0,        0,      SEN(printargs),         "posix_statfs"  },
> +[3035] = { 0,        TSF,    SEN(printargs),         "posix_statfs"  },
>  [3036] = { 0,        0,      SEN(printargs),         "posix_sync"    },
>  [3037] = { 0,        0,      SEN(printargs),         "posix_kill"    },
>  [3038] = { 0,        0,      SEN(printargs),         "posix_fstatfs" },
> diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
> index 052af4f..dd6429b 100644
> --- a/linux/mips/syscallent-n32.h
> +++ b/linux/mips/syscallent-n32.h
> @@ -134,7 +134,7 @@
>  [6131] = { 3,        TF,             SEN(mknod),                     "mknod" 
>                 },
>  [6132] = { 1,        NF,             SEN(personality),               
> "personality"           },
>  [6133] = { 2,        0,              SEN(ustat),                     "ustat" 
>                 },
> -[6134] = { 2,        TF,             SEN(statfs),                    
> "statfs"                },
> +[6134] = { 2,        TF|TSF,         SEN(statfs),                    
> "statfs"                },
>  [6135] = { 2,        TD,             SEN(fstatfs),                   
> "fstatfs"               },
>  [6136] = { 3,        0,              SEN(sysfs),                     "sysfs" 
>                 },
>  [6137] = { 2,        0,              SEN(getpriority),               
> "getpriority"           },
> @@ -217,7 +217,7 @@
>  [6214] = { 0,        0,              SEN(restart_syscall),           
> "restart_syscall"       },
>  [6215] = { 4,        TI,             SEN(semtimedop),                
> "semtimedop"            },
>  [6216] = { 4,        TD,             SEN(fadvise64_64),              
> "fadvise64"             },
> -[6217] = { 3,        TF,             SEN(statfs64),                  
> "statfs64"              },
> +[6217] = { 3,        TF|TSF,         SEN(statfs64),                  
> "statfs64"              },
>  [6218] = { 3,        TD,             SEN(fstatfs64),                 
> "fstatfs64"             },
>  [6219] = { 4,        TD|TN,          SEN(sendfile64),                
> "sendfile64"            },
>  [6220] = { 3,        0,              SEN(timer_create),              
> "timer_create"          },
> diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
> index fdd778b..d5065ad 100644
> --- a/linux/mips/syscallent-n64.h
> +++ b/linux/mips/syscallent-n64.h
> @@ -134,7 +134,7 @@
>  [5131] = { 3,        TF,             SEN(mknod),                     "mknod" 
>                 },
>  [5132] = { 1,        NF,             SEN(personality),               
> "personality"           },
>  [5133] = { 2,        0,              SEN(ustat),                     "ustat" 
>                 },
> -[5134] = { 2,        TF,             SEN(statfs),                    
> "statfs"                },
> +[5134] = { 2,        TF|TSF,         SEN(statfs),                    
> "statfs"                },
>  [5135] = { 2,        TD,             SEN(fstatfs),                   
> "fstatfs"               },
>  [5136] = { 3,        0,              SEN(sysfs),                     "sysfs" 
>                 },
>  [5137] = { 2,        0,              SEN(getpriority),               
> "getpriority"           },
> diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
> index 509a719..b6b5626 100644
> --- a/linux/mips/syscallent-o32.h
> +++ b/linux/mips/syscallent-o32.h
> @@ -99,7 +99,7 @@
>  [4096] = { 2,        0,              SEN(getpriority),               
> "getpriority"           },
>  [4097] = { 3,        0,              SEN(setpriority),               
> "setpriority"           },
>  [4098] = { 0,        0,              SEN(profil),                    
> "profil"                },
> -[4099] = { 2,        TF,             SEN(statfs),                    
> "statfs"                },
> +[4099] = { 2,        TF|TSF,         SEN(statfs),                    
> "statfs"                },
>  [4100] = { 2,        TD,             SEN(fstatfs),                   
> "fstatfs"               },
>  [4101] = { 3,        0,              SEN(ioperm),                    
> "ioperm"                },
>  [4102] = { 2,        TD,             SEN(socketcall),                
> "socketcall"            },
> @@ -255,7 +255,7 @@
>  [4252] = { 1,        0,              SEN(set_tid_address),           
> "set_tid_address"       },
>  [4253] = { 0,        0,              SEN(restart_syscall),           
> "restart_syscall"       },
>  [4254] = { 7,        TD,             SEN(fadvise64_64),              
> "fadvise64"             },
> -[4255] = { 3,        TF,             SEN(statfs64),                  
> "statfs64"              },
> +[4255] = { 3,        TF|TSF,         SEN(statfs64),                  
> "statfs64"              },
>  [4256] = { 3,        TD,             SEN(fstatfs64),                 
> "fstatfs64"             },
>  [4257] = { 3,        0,              SEN(timer_create),              
> "timer_create"          },
>  [4258] = { 4,        0,              SEN(timer_settime),             
> "timer_settime"         },
> diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
> index 1431f8a..8d2b98f 100644
> --- a/linux/powerpc/syscallent.h
> +++ b/linux/powerpc/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -278,7 +278,7 @@
>  [249] = { 2, 0,              SEN(printargs),                 "swapcontext"   
>         },
>  [250] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [251] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> -[252] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[252] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [253] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [254] = { 6, TD,             SEN(fadvise64_64),              "fadvise64_64"  
>         },
>  [255] = { 1, 0,              SEN(printargs),                 "rtas"          
>         },
> diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
> index eae3b57..ee2ceed 100644
> --- a/linux/powerpc64/syscallent.h
> +++ b/linux/powerpc64/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -273,7 +273,7 @@
>  [249] = { 2, 0,              SEN(printargs),                 "swapcontext"   
>         },
>  [250] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [251] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> -[252] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[252] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [253] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [254] = { },
>  [255] = { 1, 0,              SEN(printargs),                 "rtas"          
>         },
> diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
> index 105e511..2194696 100644
> --- a/linux/s390/syscallent.h
> +++ b/linux/s390/syscallent.h
> @@ -127,7 +127,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -293,7 +293,7 @@
>  [262] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
>  [263] = { 5, 0,              SEN(vserver),                   "vserver"       
>         },
>  [264] = { 6, TD,             SEN(fadvise64_64),              "fadvise64_64"  
>         },
> -[265] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[265] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [266] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [267] = { 5, TM|SI,          SEN(remap_file_pages),          
> "remap_file_pages"      },
>  [268] = { 6, TM,             SEN(mbind),                     "mbind"         
>         },
> diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
> index d5b5459..e8d47cb 100644
> --- a/linux/s390x/syscallent.h
> +++ b/linux/s390x/syscallent.h
> @@ -121,7 +121,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -277,7 +277,7 @@
>  [262] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
>  [263] = { 5, 0,              SEN(vserver),                   "vserver"       
>         },
>  [264] = { },
> -[265] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[265] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [266] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [267] = { 5, TM|SI,          SEN(remap_file_pages),          
> "remap_file_pages"      },
>  [268] = { 6, TM,             SEN(mbind),                     "mbind"         
>         },
> diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
> index 1388416..89f1e19 100644
> --- a/linux/sh/syscallent.h
> +++ b/linux/sh/syscallent.h
> @@ -127,7 +127,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -293,7 +293,7 @@
>  [265] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [266] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [267] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[268] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[268] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [269] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [270] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [271] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
> index e935104..42f2199 100644
> --- a/linux/sh64/syscallent.h
> +++ b/linux/sh64/syscallent.h
> @@ -125,7 +125,7 @@
>  [ 96] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
>  [ 97] = { 3, 0,              SEN(setpriority),               "setpriority"   
>         },
>  [ 98] = { 4, 0,              SEN(profil),                    "profil"        
>         },
> -[ 99] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[ 99] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [100] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [101] = { 3, 0,              SEN(ioperm),                    "ioperm"        
>         },
>  [102] = { 2, TD,             SEN(socketcall),                "socketcall"    
>         },
> @@ -319,7 +319,7 @@
>  [293] = { 2, 0,              SEN(clock_gettime),             "clock_gettime" 
>         },
>  [294] = { 2, 0,              SEN(clock_getres),              "clock_getres"  
>         },
>  [295] = { 4, 0,              SEN(clock_nanosleep),           
> "clock_nanosleep"       },
> -[296] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[296] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [297] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [298] = { 3, TS,             SEN(tgkill),                    "tgkill"        
>         },
>  [299] = { 2, TF,             SEN(utimes),                    "utimes"        
>         },
> diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
> index 30d8819..6e0cff6 100644
> --- a/linux/sparc/syscallent.h
> +++ b/linux/sparc/syscallent.h
> @@ -155,7 +155,7 @@
>  [154] = { 3, TD,             SEN(getdents64),                "getdents64"    
>         },
>  [155] = { 3, TD,             SEN(fcntl64),                   "fcntl64"       
>         },
>  [156] = { 2, TD,             SEN(inotify_rm_watch),          
> "inotify_rm_watch"      },
> -[157] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[157] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [158] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [159] = { 1, TF,             SEN(umount),                    "umount"        
>         },
>  [160] = { 3, TSC,            SEN(sched_setaffinity),         
> "sched_set_affinity"    },
> @@ -232,7 +232,7 @@
>  [231] = { 1, 0,              SEN(time),                      "time"          
>         },
>  [232] = { 6, TD,             SEN(splice),                    "splice"        
>         },
>  [233] = { 1, 0,              SEN(stime),                     "stime"         
>         },
> -[234] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[234] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [235] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [236] = { 5, TD,             SEN(llseek),                    "_llseek"       
>         },
>  [237] = { 2, TM,             SEN(mlock),                     "mlock"         
>         },
> diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
> index 1137a3e..6bf370e 100644
> --- a/linux/sparc64/syscallent.h
> +++ b/linux/sparc64/syscallent.h
> @@ -153,7 +153,7 @@
>  [154] = { 3, TD,             SEN(getdents64),                "getdents64"    
>         },
>  [155] = { },
>  [156] = { 2, TD,             SEN(inotify_rm_watch),          
> "inotify_rm_watch"      },
> -[157] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[157] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [158] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [159] = { 1, TF,             SEN(umount),                    "umount"        
>         },
>  [160] = { 3, TSC,            SEN(sched_setaffinity),         
> "sched_set_affinity"    },
> @@ -230,7 +230,7 @@
>  [231] = { },
>  [232] = { 6, TD,             SEN(splice),                    "splice"        
>         },
>  [233] = { 1, 0,              SEN(stime),                     "stime"         
>         },
> -[234] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[234] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [235] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [236] = { 5, TD,             SEN(llseek),                    "_llseek"       
>         },
>  [237] = { 2, TM,             SEN(mlock),                     "mlock"         
>         },
> diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
> index 30a684a..6394c4f 100644
> --- a/linux/x32/syscallent.h
> +++ b/linux/x32/syscallent.h
> @@ -135,7 +135,7 @@
>  [134] = { 1, TF,             SEN(printargs),                 "64:uselib"     
>         },
>  [135] = { 1, NF,             SEN(personality),               "personality"   
>         },
>  [136] = { 2, 0,              SEN(ustat),                     "ustat"         
>         },
> -[137] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[137] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [138] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [139] = { 3, 0,              SEN(sysfs),                     "sysfs"         
>         },
>  [140] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
> diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
> index 62960d2..1e215aa 100644
> --- a/linux/x86_64/syscallent.h
> +++ b/linux/x86_64/syscallent.h
> @@ -135,7 +135,7 @@
>  [134] = { 1, TF,             SEN(uselib),                    "uselib"        
>         },
>  [135] = { 1, NF,             SEN(personality),               "personality"   
>         },
>  [136] = { 2, 0,              SEN(ustat),                     "ustat"         
>         },
> -[137] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[137] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [138] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
>  [139] = { 3, 0,              SEN(sysfs),                     "sysfs"         
>         },
>  [140] = { 2, 0,              SEN(getpriority),               "getpriority"   
>         },
> diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
> index 63995bc..40bd8f8 100644
> --- a/linux/xtensa/syscallent.h
> +++ b/linux/xtensa/syscallent.h
> @@ -176,9 +176,9 @@
>  [181] = { 1, NF,             SEN(setfsgid),                  "setfsgid"      
>         },
>  [182] = { 3, 0,              SEN(sysfs),                     "sysfs"         
>         },
>  [183] = { 2, 0,              SEN(ustat),                     "ustat"         
>         },
> -[184] = { 2, TF,             SEN(statfs),                    "statfs"        
>         },
> +[184] = { 2, TF|TSF,         SEN(statfs),                    "statfs"        
>         },
>  [185] = { 2, TD,             SEN(fstatfs),                   "fstatfs"       
>         },
> -[186] = { 3, TF,             SEN(statfs64),                  "statfs64"      
>         },
> +[186] = { 3, TF|TSF,         SEN(statfs64),                  "statfs64"      
>         },
>  [187] = { 3, TD,             SEN(fstatfs64),                 "fstatfs64"     
>         },
>  [188] = { 2, 0,              SEN(setrlimit),                 "setrlimit"     
>         },
>  [189] = { 2, 0,              SEN(getrlimit),                 "getrlimit"     
>         },
> diff --git a/qualify.c b/qualify.c
> index b5023f2..692f7ec 100644
> --- a/qualify.c
> +++ b/qualify.c
> @@ -220,6 +220,7 @@ lookup_class(const char *s)
>               { "%ipc",       TRACE_IPC       },
>               { "%network",   TRACE_NETWORK   },
>               { "%sched",     TRACE_SCHED     },
> +             { "%statfs",    TRACE_STATFS    },
>       };
>  
>       unsigned int i;
> diff --git a/strace.1 b/strace.1
> index 9b69ec2..5286ba4 100644
> --- a/strace.1
> +++ b/strace.1
> @@ -429,6 +429,9 @@ Trace all memory mapping related system calls.
>  .BR "\-e\ trace" = %sched
>  Trace all scheduler-related (sched_*) system calls.
>  .TP
> +.BR "\-e\ trace" = %statfs
> +Trace statfs-related (statfs{,64}) system calls.
> +.TP
>  \fB\-e\ abbrev\fR=\,\fIset\fR
>  Abbreviate the output from printing each member of large structures.
>  The default is
> diff --git a/syscall.c b/syscall.c
> index 569055f..2a93731 100644
> --- a/syscall.c
> +++ b/syscall.c
> @@ -77,6 +77,7 @@
>  #define TS TRACE_SIGNAL
>  #define TM TRACE_MEMORY
>  #define TSC TRACE_SCHED
> +#define TSF TRACE_STATFS
>  #define NF SYSCALL_NEVER_FAILS
>  #define MA MAX_ARGS
>  #define SI STACKTRACE_INVALIDATE_CACHE
> @@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = {
>  #undef TS
>  #undef TM
>  #undef TSC
> +#undef TSF
>  #undef NF
>  #undef MA
>  #undef SI
> diff --git a/sysent.h b/sysent.h
> index f4eaa93..00bae67 100644
> --- a/sysent.h
> +++ b/sysent.h
> @@ -22,5 +22,6 @@ typedef struct sysent {
>  #define TRACE_INDIRECT_SUBCALL       02000   /* Syscall is an indirect 
> socket/ipc subcall. */
>  #define COMPAT_SYSCALL_TYPES 04000   /* A compat syscall that uses compat 
> types. */
>  #define TRACE_SCHED          010000  /* Trace scheduler-related syscalls. */
> +#define TRACE_STATFS 040000  /* Trace narrower statfs-related syscalls. */
It is formatted differently comparing to previous records.

>  
>  #endif /* !STRACE_SYSENT_H */
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index a75b7fc..655ff7c 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -734,6 +734,7 @@ DECODER_TESTS = \
>       rt_sigtimedwait.test \
>       rt_tgsigqueueinfo.test \
>       sched.test \
> +     trace_statfs.test \
>       sched_get_priority_mxx.test \
>       sched_rr_get_interval.test \
>       sched_xetaffinity.test \
> diff --git a/tests/ksysent.c b/tests/ksysent.c
> index 252feff..0db235a 100644
> --- a/tests/ksysent.c
> +++ b/tests/ksysent.c
> @@ -41,6 +41,7 @@
>  #define TS 0
>  #define TM 0
>  #define TSC 0
> +#define TSF 0
>  #define NF 0
>  #define MA 0
>  #define SI 0
> diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c
> index c2bdb20..9ed4b0a 100644
> --- a/tests/nsyscalls.c
> +++ b/tests/nsyscalls.c
> @@ -42,6 +42,7 @@
>  #define TS 0
>  #define TM 0
>  #define TSC 0
> +#define TSF 0
>  #define NF 0
>  #define MA 0
>  #define SI 0
> diff --git a/tests/trace_statfs.test b/tests/trace_statfs.test
> new file mode 100755
> index 0000000..2c4c785
> --- /dev/null
> +++ b/tests/trace_statfs.test
> @@ -0,0 +1,54 @@
> +#!/bin/sh
> +
> +# Check how statfs-related syscalls are traced.
> +#
> +# Copyright (c) 2017 The strace developers.
> +# All rights reserved.
> +#
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions
> +# are met:
> +# 1. Redistributions of source code must retain the above copyright
> +#    notice, this list of conditions and the following disclaimer.
> +# 2. Redistributions in binary form must reproduce the above copyright
> +#    notice, this list of conditions and the following disclaimer in the
> +#    documentation and/or other materials provided with the distribution.
> +# 3. The name of the author may not be used to endorse or promote products
> +#    derived from this software without specific prior written permission.
> +#
> +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
> +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
> +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
> +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
> +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +. "${srcdir=.}/init.sh"
> +
> +while read w i
> +do
> +     try_run_prog "./$i" || continue
> +     run_strace -a$w -e%statfs ./$i > "$EXP"
> +     match_diff "$LOG" "$EXP"
> +done << EOF
> +17 statfs 
Tailing whitespace.

I'd also suggest adding stat64 test to this list.

> +EOF
> +
> +echo '+++ exited with 0 +++' > "$EXP"
> +
> +while read w i
> +do
> +     try_run_prog "./$i" || continue
> +     run_strace -a$w -e%statfs ./$i > /dev/null
> +     match_diff "$LOG" "$EXP"
> +done << EOF
> +11 fchdir
> +28 futex
> +10 fsync
> +EOF
> +
> +rm "$EXP"
> -- 
> 2.7.4
> 

> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot

> _______________________________________________
> Strace-devel mailing list
> Strace-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/strace-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to