diff options
author | Steve Dickson <steved@redhat.com> | 2009-06-10 11:21:37 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2009-06-10 11:21:37 -0400 |
commit | dfdce363041b4fb72910837174bf40019923c9bc (patch) | |
tree | 827cf40c3a311e8314c0e6719cebd7e0c34919ec /nfsd | |
parent | aaa6513f6db3a54691cfa7022bfbd979db42672e (diff) | |
download | systemtap-dfdce363041b4fb72910837174bf40019923c9bc.tar.gz systemtap-dfdce363041b4fb72910837174bf40019923c9bc.tar.xz systemtap-dfdce363041b4fb72910837174bf40019923c9bc.zip |
Reorganised scripts into local directories
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'nfsd')
-rw-r--r-- | nfsd/nfsd4_acl.stp | 56 | ||||
-rw-r--r-- | nfsd/nfsd4_callback.stp | 32 | ||||
-rw-r--r-- | nfsd/nfsd4_secinfo.stp | 72 | ||||
-rw-r--r-- | nfsd/nfsd_auth.stp | 29 | ||||
-rw-r--r-- | nfsd/nfsd_cacheio.stp | 147 | ||||
-rw-r--r-- | nfsd/nfsd_deleg.stp | 48 | ||||
-rw-r--r-- | nfsd/nfsd_dispatch.stp | 47 | ||||
-rw-r--r-- | nfsd/nfsd_exports.stp | 89 | ||||
-rw-r--r-- | nfsd/nfsd_fh.stp | 101 | ||||
-rw-r--r-- | nfsd/nfsd_lookup.stp | 100 | ||||
-rw-r--r-- | nfsd/nfsd_permission.stp | 16 | ||||
-rw-r--r-- | nfsd/nfsd_setattr.stp | 19 | ||||
-rw-r--r-- | nfsd/svc_export.stp | 49 |
13 files changed, 805 insertions, 0 deletions
diff --git a/nfsd/nfsd4_acl.stp b/nfsd/nfsd4_acl.stp new file mode 100644 index 0000000..e46403f --- /dev/null +++ b/nfsd/nfsd4_acl.stp @@ -0,0 +1,56 @@ +global nfs4err + +probe module("nfsd").function("nfs4_acl_new") +{ + printf("nfs4_acl_new: n %d\n", $n); +} +probe module("nfsd").function("nfs4_acl_new").return +{ + printf("nfs4_acl_new: nfs4_acl * %p \n", $return); +} +probe module("nfsd").function("nfs4_acl_get_whotype") +{ + printf("nfs4_acl_get_whotype: p %p(%s) len %d\n", + $p, kernel_string($p), $len); +} +probe module("nfsd").function("nfs4_acl_get_whotype").return +{ + if ( $return == 0) + printf("nfs4_acl_get_whotype: return NFS4_ACL_WHO_NAMED\n"); + if ( $return == 1) + printf("nfs4_acl_get_whotype: return NFS4_ACL_WHO_OWNER\n"); + if ( $return == 2) + printf("nfs4_acl_get_whotype: return NFS4_ACL_WHO_GROUP\n"); + if ( $return == 3) + printf("nfs4_acl_get_whotype: return NFS4_ACL_WHO_EVERYONE\n"); +} +probe module("nfsd").function("nfs4_acl_write_who") +{ + printf("nfs4_acl_write_who: who %d p %p(%s)\n", + $who, $p, kernel_string($p)); +} +probe module("nfsd").function("nfs4_acl_write_who").return +{ + printf("nfs4_acl_write_who: return %d\n", $return); +} +probe module("nfsd").function("idmap_name_to_id") +{ + printf("idmap_name_to_id: rqstp %d type %d name(%d) %s\n", + $rqstp, $type, $namelen, kernel_string($name)); +} +probe module("nfsd").function("idmap_name_to_id").return +{ + printf("idmap_name_to_id: return %d(%s)\n", $return, errno_str($return)); +} +probe module("nfs").function("nfs4_stat_to_errno") +{ + nfs4err = $stat; +} +probe module("nfs").function("nfs4_stat_to_errno").return +{ + printf("nfs4_stat_to_errno: %s errno %d(%s)\n", + nfs4error(nfs4err), $return, errno_str($return)); +} + +probe begin { log("starting nfsd4_acl probe") } +probe end { log("ending nfsd4_acl probe") } diff --git a/nfsd/nfsd4_callback.stp b/nfsd/nfsd4_callback.stp new file mode 100644 index 0000000..b0defc6 --- /dev/null +++ b/nfsd/nfsd4_callback.stp @@ -0,0 +1,32 @@ +probe module("nfsd").function("nfsd4_probe_callback") +{ + printf("nfsd4_probe_callback: clp %p\n", $clp); +} +probe module("nfsd").function("nfsd4_setclientid_confirm") +{ + printf("nfsd4_setclientid_confirm: hellow\n"); +} +/* +probe module("nfsd").function("*@fs/nfsd/nfs4state.c:3318") +{ + printf("nfsd4_setclientid_confirm: hellow\n"); +} +*/ +probe module("nfsd").function("nfsd4_setclientid_confirm").return +{ + printf("nfsd4_setclientid_confirm: status %d\n", $return); +} +probe module("nfsd").function("nfsd4_process_open2").return +{ + printf("nfsd4_process_open2: status %d\n", $return); +} +probe module("nfsd").function("svc_export_parse").return +{ + printf("svc_export_parse: status %d\n", $return); +} +probe module("sunrpc").function("rpc_exit_task") +{ + printf("rpc_exit_task: task 0x%p\n", $task); +} +probe begin { log("starting probe") } +probe end { log("ending probe") } diff --git a/nfsd/nfsd4_secinfo.stp b/nfsd/nfsd4_secinfo.stp new file mode 100644 index 0000000..aa91a26 --- /dev/null +++ b/nfsd/nfsd4_secinfo.stp @@ -0,0 +1,72 @@ +global check_exp, check_rqstp_flavor + +probe module("nfsd").function("nfsd4_secinfo") +{ + printf("nfsd4_secinfo: rqstp %p fh %p secinfo %p\n", + $rqstp, $current_fh, $secinfo); + printf(" : %s\n", nfsd4_secinfo_dump($secinfo)); +} +probe module("nfsd").function("nfsd4_secinfo").return +{ + printf("nfsd4_secinfo: %s\n", nfsderror($return)); +} +/* +probe module("nfsd").function("nfsd_lookup_dentry") +{ + printf(" nfsd_lookup_dentry: rqstp %p fh %p\n", $rqstp, $fhp); +} +*/ +probe module("nfsd").function("nfsd_lookup_dentry").return +{ + if ($return != 0) + printf(" nfsd_lookup_dentry: %s\n", nfsderror($return)); +} +probe module("nfsd").function("nfsd4_encode_secinfo") +{ + if ($nfserr != 0) { + printf("nfsd4_encode_secinfo: error %s\n", nfsderror($nfserr)); + } else { + printf("nfsd4_encode_secinfo: %s\n", svc_export_flavors($secinfo->si_exp)); + } +} +probe module("nfsd").function("nfsd4_decode_secinfo") +{ + printf("nfsd4_decode_secinfo: argp %p secinfo %p\n", $argp, $secinfo); +} +probe module("nfsd").function("nfsd4_decode_secinfo").return +{ + printf("nfsd4_decode_secinfo: %s\n", nfsderror($return)); +} +probe module("nfsd").function("secinfo_parse") +{ + printf("secinfo_parse: %s\n", svc_export_dump($exp)); +} +probe module("nfsd").function("secinfo_parse").return +{ + printf("secinfo_parse: %s\n", nfsderror($return)); +} +probe module("nfsd").function("nfsd_lookup") +{ + printf("nfsd_lookup: rqstp %p fhp %p name %s\n", + $rqstp, $fhp, kernel_string($name)); +} +probe module("nfsd").function("nfsd_lookup").return +{ + printf("nfsd_lookup: %s\n", nfsderror($return)); +} +probe module("nfsd").function("check_nfsd_access") +{ + check_exp = $exp; + check_rqstp_flavor = $rqstp->rq_flavor; +} +probe module("nfsd").function("check_nfsd_access").return +{ + if ($return != 0) { + printf(" check_nfsd_access: %s\n", nfsderror($return)); + printf(" : rq_flavor %d %s\n", + check_rqstp_flavor, svc_export_flavors(check_exp)); + } +} +probe begin { log("starting nfsd4_secinfo probe") } +probe end { log("ending nfsd4_secinfo probe") } + diff --git a/nfsd/nfsd_auth.stp b/nfsd/nfsd_auth.stp new file mode 100644 index 0000000..6e2b4d2 --- /dev/null +++ b/nfsd/nfsd_auth.stp @@ -0,0 +1,29 @@ +probe module("sunrpc").function("svc_authenticate") +{ + printf("svc_authenticate: rqstp %p authp %p\n", $rqstp, $authp); +} +probe module("sunrpc").function("svc_authenticate").return +{ + printf("svc_authenticate: %s\n", svcerror($return)); +} +probe module("auth_rpcgss").function("svcauth_gss_set_client") +{ + printf("svcauth_gss_set_client: rqstp %p\n", $rqstp); +} +probe module("auth_rpcgss").function("svcauth_gss_set_client").return +{ + printf("svcauth_gss_set_client: %s\n", svcerror($return)); +} +probe module("sunrpc").function("svcauth_unix_set_client") +{ + printf("svcauth_unix_set_client: rqstp %p\n", $rqstp); +} +probe module("sunrpc").function("svcauth_unix_set_client").return +{ + printf("svcauth_unix_set_client: %s\n", svcerror($return)); +} + + +probe begin { log("starting nfsd_auth probe") } +probe end { log("ending nfsd_auth probe") } + diff --git a/nfsd/nfsd_cacheio.stp b/nfsd/nfsd_cacheio.stp new file mode 100644 index 0000000..3dc0a8d --- /dev/null +++ b/nfsd/nfsd_cacheio.stp @@ -0,0 +1,147 @@ +#!/usr/bin/env stap + +probe module("nfsd").function("exp_pseudoroot") +{ + printf("exp_pseudoroot: rqstp %p fhp %p\n", $rqstp, $fhp); +} +probe module("nfsd").function("exp_pseudoroot").return +{ + printf("exp_pseudoroot: %s\n", nfsderror($return)); +} +probe module("sunrpc").function("cache_write") +{ + if (!isinstr("rpc.idmapd", file2name($filp))) { + printf("cache_write(%s): cnt %d %s\n", execname(), + $count, file2name($filp)); + } + //printf("cache_write(%s): filp %p cnt %d\n", execname(), $filp, $count); + //printf(" : name %s\n", file2name($filp)); +} +probe module("sunrpc").function("cache_write").return +{ + if ($return < 0) { + printf("cache_write: error %s\n", errno_str($return)); + } else { + printf("cache_write: cnt %d\n", $return); + } +} +probe module("nfsd").function("svc_export_lookup") +{ + printf(" svc_export_lookup: %p\n", $exp); +} +probe module("nfsd").function("svc_export_lookup").return +{ + if ($return > 0) { + printf(" svc_export_lookup: %s\n", svc_export_dump($return)); + } else { + printf(" svc_export_lookup: return %p\n", $return); + } +} +probe module("nfsd").function("svc_export_parse") +{ + printf(" svc_export_parse: cd %p(%s) mlen %d\n", + $cd, kernel_string($cd->name), $mlen); + printf(" %s\n", + svc_export_data(kernel_string($mesg))); +} +probe module("nfsd").function("svc_export_parse").return +{ + if ($return < 0) + printf(" svc_export_parse: error %s\n", errno_str($return)); +} +probe module("nfsd").function("exp_get_by_name") +{ + printf("exp_get_by_name: clp %p mnt %p dentry %p reqp %p\n", + $clp, $mnt, $dentry, $reqp); +} +probe module("nfsd").function("exp_get_by_name").return +{ + printf("exp_get_by_name: return %p\n", $return); +} +probe module("nfsd").function("exp_export") +{ + printf("exp_export: %p\n", $nxp); +} +probe module("nfsd").function("exp_export").return +{ + printf("exp_export: return %p\n", $return); +} +/* +probe module("sunrpc").function("cache_read") +{ + printf("cache_read(%s): %s\n", execname(), file2name($filp)); + //printf("cache_write(%s): filp %p cnt %d\n", execname(), $filp, $count); + //printf(" : name %s\n", file2name($filp)); +} +probe module("sunrpc").function("cache_read").return +{ + if ($return < 0) + printf("cache_read: error %s\n", errno_str($return)); +} +*/ +probe module("nfsd").function("svc_export_parse") +{ + printf(" svc_export_parse: cd %p(%s) mlen %d\n", + $cd, kernel_string($cd->name), $mlen); + printf(" %s\n", + svc_export_data(kernel_string($mesg))); +} +probe module("nfsd").function("svc_export_parse").return +{ + if ($return < 0) + printf(" svc_export_parse: error %s\n", errno_str($return)); +} +probe module("sunrpc").function("ip_map_parse") +{ + printf(" ip_map_parse: cd %p(%s) mlen %d\n", + $cd, kernel_string($cd->name), $mlen); + printf(" %s\n", ip_map_data(kernel_string($mesg))); +} +probe module("sunrpc").function("ip_map_parse").return +{ + if ($return < 0) + printf(" ip_map_parse: error %s\n", errno_str($return)); +} +probe module("nfsd").function("expkey_parse") +{ + printf(" expkey_parse: cd %p(%s) mlen %d\n", + $cd, kernel_string($cd->name), $mlen); + printf(" %s\n", expkey_data(kernel_string($mesg))); +} +probe module("nfsd").function("expkey_parse").return +{ + if ($return < 0) + printf(" expkey_parse: error %s\n", errno_str($return)); +} +/* +probe module("nfsd").function("idtoname_parse") +{ + printf(" idtoname_parse: cd %p(%s) buflen %d\n", + $cd, kernel_string($cd->name), $buflen); + printf(" %s\n", idtoname_data(kernel_string($buf))); +} +probe module("nfsd").function("idtoname_parse").return +{ + if ($return < 0) + printf(" idtoname_parse: error %s\n", errno_str($return)); +} +*/ +probe module("nfsd").function("expkey_request") +{ + printf(" expkey_request: cd %p(%s)\n", + $cd, kernel_string($cd->name)); + //print_stack(backtrace()); + //printf(" %s\n", expkey_data(kernel_string($mesg))); +} +probe module("nfsd").function("check_export") +{ + printf(" check_export: inode %p flags 0x%x uuid %p\n", + $inode, $flags, $uuid); +} +probe module("nfsd").function("check_export").return +{ + if ($return < 0) + printf(" check_export: error %s\n", errno_str($return)); +} +probe begin { log("starting cachio probe") } +probe end { log("ending cachio probe") } diff --git a/nfsd/nfsd_deleg.stp b/nfsd/nfsd_deleg.stp new file mode 100644 index 0000000..02c7590 --- /dev/null +++ b/nfsd/nfsd_deleg.stp @@ -0,0 +1,48 @@ + +probe module("nfsd").function("nfs4_open_delegation") +{ + printf("nfs4_open_delegation: fh %p open %p (type: %d) stp %d\n", + $fh, $open, $open->op_claim_type, $stp); + printf(" : %s\n", nfs4_callback($stp)); +} +probe module("nfsd").function("alloc_init_deleg") +{ + printf(" alloc_init_deleg: clp %p stp %p current_fh %p, type %d\n", + $clp, $stp, $current_fh, $type); +} +probe module("nfsd").function("alloc_init_deleg").return +{ + printf(" alloc_init_deleg: %p\n", $return); +} +probe kernel.function("setlease") +{ + printf(" setlease: filp %p arg %p\n", $filp, $arg); +} +probe kernel.function("setlease").return +{ + printf(" setlease: return %d (%s)\n", $return, errno_str($return)); +} +/* +probe kernel.function("security_file_lock") +{ + printf(" security_file_lock: filp %p arg %p\n", $filp, $arg); +} +probe kernel.function("security_file_lock").return +{ + printf(" security_file_lock: return %d (%s)\n", + $return, errno_str($return)); +} +*/ +probe kernel.function("__setlease") +{ + printf(" __setlease: filp %p arg %p\n", $filp, $arg); +} +probe kernel.function("__setlease").return +{ + printf(" __setlease: return %d (%s)\n", + $return, errno_str($return)); +} + +probe begin { log("starting nfsd_deleg probe") } +probe end { log("ending nfsd_deleg probe") } + diff --git a/nfsd/nfsd_dispatch.stp b/nfsd/nfsd_dispatch.stp new file mode 100644 index 0000000..15f9e6f --- /dev/null +++ b/nfsd/nfsd_dispatch.stp @@ -0,0 +1,47 @@ +/* +probe module("nfsd").function("nfsd_setattr") +{ + printf("nfsd_setattr: rqstp %p fhp %p iap %p check_guard %d\n", + $rqstp, $fhp, $iap, $check_guard); +} +probe module("nfsd").function("nfsd_setattr").return +{ + printf("nfsd_setattr: %s\n", nfsderror($return)); +} +probe nfsd.dispatch +{ + printf("prog %d proc %d\n", prog, proc); +} +probe nfsd.dispatch.return +{ + printf("return %s\n", retstr); +} +probe nfsd.proc.compound +{ + printf("cnt %d proc %p\n", num, op); +} +global lookupname + +probe nfsd.proc3.lookup +{ + lookupname = filename; + +} +probe nfsd.proc3.lookup.return +{ + printf("nfsd_lookup %s %s\n", lookupname, nfsderror($return)); +} +*/ +probe module("nfsd").function("nfsd4_proc_compound") +{ + printf("nfsd4_proc_compound: %s\n", nfs4ops($args)); +} +probe module("nfsd").function("nfsd4_proc_compound").return +{ + if ($return != 0) + printf("nfsd4_proc_compound: %s\n", nfsderror($return)); +} + +probe begin { log("starting nfsd4_dispatch probe") } +probe end { log("ending nfsd4_dispatch probe") } + diff --git a/nfsd/nfsd_exports.stp b/nfsd/nfsd_exports.stp new file mode 100644 index 0000000..ec73af8 --- /dev/null +++ b/nfsd/nfsd_exports.stp @@ -0,0 +1,89 @@ +global check_exp, check_rqstp_flavor + +probe module("nfsd").function("exp_pseudoroot") +{ + printf("exp_pseudoroot: rqstp %p fhp %p\n", $rqstp, $fhp); +} +probe module("nfsd").function("exp_pseudoroot").return +{ + printf("exp_pseudoroot: %s\n", nfsderror($return)); +} +/* +probe module("nfsd").function("exp_find") +{ + printf(" exp_find: clp %p fsid %d fsdiv %p\n", + $clp, $fsid_type, $fsidv); +} +probe module("nfsd").function("exp_find").return +{ + printf(" exp_find: %p\n", $return); +} +*/ +probe module("nfsd").function("rqst_exp_find") +{ + printf(" rqst_exp_find: rqstp %p fsid_type %d fsidv %p\n", + $rqstp, $fsid_type, $fsidv); +} +probe module("nfsd").function("rqst_exp_find").return +{ + printf(" rqst_exp_find: %p\n", $return); +} +probe module("nfsd").function("fh_compose") +{ + printf(" fh_compose: fhp %p exp %p dentry %p ref_fh %p\n", + $fhp, $exp, $dentry, $ref_fh); +} +probe module("nfsd").function("fh_compose").return +{ + printf(" fh_compose: %s\n", nfsderror($return)); +} +probe module("nfsd").function("svc_export_lookup") +{ + printf(" svc_export_lookup: %p\n", $exp); +} +probe module("nfsd").function("svc_export_lookup").return +{ + printf(" svc_export_lookup: return %p\n", $return); + if ($return > 0) + printf(" : %s\n", + svc_export_dump($return)); +} +probe module("sunrpc").function("cache_check") +{ + printf(" cache_check: detail %p h %p rqstp %p\n", + $detail, $h, $rqstp); + printf(" : %s\n", cache_head_dump($detail, $h)); +} +probe module("sunrpc").function("cache_check").return +{ + if ($return) + printf(" cache_check: %s\n", errno_str($return)); +} +probe module("sunrpc").function("cache_make_upcall") +{ + printf(" cache_make_upcall: detail %p h %p \n", + $detail, $h); + printf(" : %s\n", cache_head_dump($detail, $h)); +} +probe module("sunrpc").function("cache_make_upcall").return +{ + if ($return) + printf(" cache_make_upcall: %s\n", errno_str($return)); +} +/* +probe module("nfsd").function("check_nfsd_access") +{ + check_exp = $exp; + check_rqstp_flavor = $rqstp->rq_flavor; +} +probe module("nfsd").function("check_nfsd_access").return +{ + if ($return != 0) { + printf(" check_nfsd_access: %s\n", nfsderror($return)); + printf(" : rq_flavor %d %s\n", + check_rqstp_flavor, svc_export_flavors(check_exp)); + } +} +*/ +probe begin { log("starting exports probe") } +probe end { log("ending exports probe") } diff --git a/nfsd/nfsd_fh.stp b/nfsd/nfsd_fh.stp new file mode 100644 index 0000000..7c7fdbe --- /dev/null +++ b/nfsd/nfsd_fh.stp @@ -0,0 +1,101 @@ +#!/usr/bin/env stap + +global _putfh_cstate, _putrootfh_cstate, pseudoroot_cstate + +probe module("nfsd").function("nfsd4_putrootfh") +{ + _putrootfh_cstate = $cstate; +} +probe module("nfsd").function("nfsd4_putrootfh").return +{ + if ($return) { + printf("nfsd4_putrootfh: %s\n", nfsderror($return)); + } else { + printf("nfsd4_putrootfh: %s\n", cstate_pr(_putrootfh_cstate)); + } +} +probe module("nfsd").function("exp_pseudoroot") +{ + /* + printf("exp_pseudoroot: rqstp %p fhp %p\n", $rqstp, $fhp); + */ + pseudoroot_cstate = $fhp; +} +probe module("nfsd").function("exp_pseudoroot").return +{ + if ($return) { + printf("exp_pseudoroot: %s\n", nfsderror($return)); + } else { + printf("exp_pseudoroot: %s\n", svcfhfmt(pseudoroot_cstate)); + } +} +probe module("nfsd").function("nfsd4_putfh") +{ + printf("nfsd4_putfh: rqstp %p cstate %p putfh %p\n", + $rqstp, $cstate, $putfh); + _putfh_cstate = $cstate; +} +probe module("nfsd").function("nfsd4_putfh").return +{ + if ($return) { + printf("nfsd4_putfh: %s\n", nfsderror($return)); + } else { + printf("nfsd4_putfh: %s\n", cstate_pr(_putfh_cstate)); + } +} +probe module("nfsd").function("nfsd4_getfh") +{ + printf("nfsd4_getfh: rqstp %p cstate %p \n", $rqstp, $cstate); + printf(" %s\n", cstate_pr($cstate)); +} +probe module("nfsd").function("nfsd4_getfh").return +{ + printf("nfsd4_getfh: %s\n", nfsderror($return)); +} +probe module("nfsd").function("fh_verify") +{ + printf(" fh_verify: rqstp %p fhp %p type %d access %d\n", + $rqstp, $fhp, $type, $access); + printf(" %s\n", svcfhfmt($fhp)); +} +probe module("nfsd").function("fh_verify").return +{ + printf(" fh_verify: %s\n", nfsderror($return)); +} +probe module("nfsd").function("fh_compose") +{ + printf(" fh_compose: fhp %p exp %p dentry %p ref_fh %p\n", + $fhp, $exp, $dentry, $ref_fh); + printf(" : %s\n", svc_export_dump($exp)); +} +probe module("nfsd").function("fh_compose").return +{ + printf(" fh_compose: %s\n", nfsderror($return)); +} +probe module("nfsd").function("rqst_exp_find") +{ + printf(" rqst_exp_find: rqstp %p fsid_type %d fsidv %p\n", + $rqstp, $fsid_type, $fsidv); +} +probe module("nfsd").function("rqst_exp_find").return +{ + if ($return != 0) + printf(" rqst_exp_find: %p\n", $return); +} +/* +probe module("nfsd").function("exp_find_key").return +{ + printf("exp_find_key: %p\n", $return); +} +probe module("nfsd").function("exp_get_by_name").return +{ + printf("exp_get_by_name: %p\n", $return); +} +probe module("nfsd").function("svc_expkey_lookup").return +{ + printf("svc_expkey_lookup: %p\n", $return); +} +*/ +probe begin { log("starting nfsd_fh probe") } +probe end { log("ending nfsd_fh probe") } + diff --git a/nfsd/nfsd_lookup.stp b/nfsd/nfsd_lookup.stp new file mode 100644 index 0000000..1c9e9b4 --- /dev/null +++ b/nfsd/nfsd_lookup.stp @@ -0,0 +1,100 @@ +global check_exp, check_rqstp_flavor + +probe module("nfsd").function("nfsd_lookup") +{ + printf("nfsd_lookup: rqstp %p fhp %p name %s\n", + $rqstp, $fhp, kernel_string($name)); +} +probe module("nfsd").function("nfsd_lookup").return +{ + if ($return) + printf("nfsd_lookup: %s\n", nfsderror($return)); +} +probe module("nfsd").function("nfsd_lookup_dentry").return +{ + if ($return != 0) + printf(" nfsd_lookup_dentry: %s\n", nfsderror($return)); +} +probe module("nfsd").function("check_nfsd_access") +{ + check_exp = $exp; + check_rqstp_flavor = $rqstp->rq_flavor; +} +probe module("nfsd").function("check_nfsd_access").return +{ + if ($return != 0) { + printf(" check_nfsd_access: %s\n", nfsderror($return)); + printf(" : rq_flavor %d %s\n", + check_rqstp_flavor, svc_export_flavors(check_exp)); + } +} +probe module("nfsd").function("fh_verify") +{ + printf(" fh_verify: rqstp %p fhp %p type %d access %d\n", + $rqstp, $fhp, $type, $access); + printf(" %s\n", svcfhfmt($fhp)); +} +probe module("nfsd").function("fh_verify").return +{ + if ($return) + printf(" fh_verify: %s\n", nfsderror($return)); +} +probe module("nfsd").function("nfsd_setuser_and_check_port") +{ + printf(" nfsd_setuser_and_check_port: rqstp %p exp %p \n", + $rqstp, $exp); +} +probe module("nfsd").function("nfsd_setuser_and_check_port").return +{ + if ($return) + printf(" nfsd_setuser_and_check_port: %s\n", nfsderror($return)); +} +probe module("nfsd").function("check_nfsd_access") +{ + printf(" check_nfsd_access: rqstp %p exp %p \n", + $rqstp, $exp); +} +probe module("nfsd").function("check_nfsd_access").return +{ + if ($return) + printf(" check_nfsd_access: %s\n", nfsderror($return)); +} +probe module("nfsd").function("rqst_exp_parent") +{ + printf(" rqst_exp_parent: rqstp %p mnt %d dentry %d\n", + $rqstp, $mnt, $dentry); +} +probe module("nfsd").function("rqst_exp_parent").return +{ + printf(" rqst_exp_parent: %p\n", $return); +} +probe kernel.function("lookup_one_len") +{ + printf(" lookup_one_len: name %p dentry %p len %d\n", + $name, $base, $len); +} +probe kernel.function("lookup_one_len").return +{ + printf(" lookup_one_len: %p\n", $return); +} +probe module("nfsd").function("nfsd_cross_mnt") +{ + printf(" nfsd_cross_mnt: rqstp %p\n", $rqstp); +} +probe module("nfsd").function("nfsd_cross_mnt").return +{ + if ($return) + printf(" nfsd_cross_mnt: %s\n", nfsderror($return)); +} +probe module("nfsd").function("rqst_exp_get_by_name") +{ + printf(" rqst_exp_get_by_name: rqstp %p mnt %p dentry %p\n", + $rqstp, $mnt, $dentry); +} +probe module("nfsd").function("rqst_exp_get_by_name").return +{ + printf(" rqst_exp_get_by_name: %p\n", $return); +} +probe begin { log("starting nfsd_lookup probe") } +probe end { log("ending nfsd_lookup probe") } + diff --git a/nfsd/nfsd_permission.stp b/nfsd/nfsd_permission.stp new file mode 100644 index 0000000..7e27ca5 --- /dev/null +++ b/nfsd/nfsd_permission.stp @@ -0,0 +1,16 @@ +#!/usr/bin/env stap + +probe module("nfsd").function("nfsd_permission") +{ + printf("nfsd_permission: rqstp %p exp %p dentry %p acc 0x%x\n", + $rqstp, $exp, $dentry, $acc); + printf(" : %s\n", svc_export_dump($exp)); +} +probe module("nfsd").function("nfsd_permission").return +{ + printf("nfsd_permission: %s\n", nfsderror($return)); +} +probe begin { log("starting nfsd_permission probe") } +probe end { log("ending nfsd_permission probe") } + + diff --git a/nfsd/nfsd_setattr.stp b/nfsd/nfsd_setattr.stp new file mode 100644 index 0000000..b0cd7e0 --- /dev/null +++ b/nfsd/nfsd_setattr.stp @@ -0,0 +1,19 @@ +#!/usr/bin/env stap + +probe module("nfsd").function("nfsd_setattr") +{ + printf("nfsd_setattr: rqstp %p fhp %p iap %p check_guard %d\n", + $rqstp, $fhp, $iap, $check_guard); +} +probe module("nfsd").function("nfsd_setattr").return +{ + printf("nfsd_setattr: %s\n", nfsderror($return)); +} +probe module("nfsd").function("fh_verify").return +{ + if ($return) + printf(" fh_verify: %s\n", nfsderror($return)); +} +probe begin { log("starting nfsd_setattr probe") } +probe end { log("ending nfsd_setattr probe") } + diff --git a/nfsd/svc_export.stp b/nfsd/svc_export.stp new file mode 100644 index 0000000..eb36538 --- /dev/null +++ b/nfsd/svc_export.stp @@ -0,0 +1,49 @@ +probe module("nfsd").function("svc_export_show") +{ + printf("svc_export_show: m 0x%p cd 0x%p h 0x%p\n", $m, $cd, $h); +} +probe module("nfsd").function("svc_export_show").return +{ + if ($return) + printf("svc_export_show: %s\n", nfsderror($return)); +} + +probe module("nfsd").function("export_update") +{ + printf("export_update: cnew 0x%p citem 0x%p\n", $cnew, $citem); +} + +probe module("nfsd").function("svc_export_match") +{ + printf("svc_export_match: a 0x%p b 0x%p\n", $a, $b); +} +probe module("nfsd").function("svc_export_match").return +{ + printf("svc_export_match: %d\n", $return); +} +probe module("nfsd").function("svc_export_request") +{ + printf("svc_export_request: cd 0x%p h 0x%p\n", $cd, $h); +} +probe module("nfsd").function("svc_export_put") +{ + printf("svc_export_put: ref 0x%p \n", $ref); +} +probe module("nfsd").function("svc_export_parse") +{ + printf(" svc_export_parse: cd %p(%s) mlen %d\n", + $cd, kernel_string($cd->name), $mlen); + printf(" %s\n", + svc_export_data(kernel_string($mesg))); +} +probe module("nfsd").function("svc_export_parse").return +{ + if ($return < 0) { + printf(" svc_export_parse: error %s\n", errno_str($return)); + } else { + printf(" svc_export_parse: count %d\n", $return); + } +} +probe begin { log("starting svc_export probe") } +probe end { log("ending svc_export probe") } + |