diff options
| author | Steve Dickson <steved@redhat.com> | 2009-07-27 11:01:11 -0400 |
|---|---|---|
| committer | Steve Dickson <steved@redhat.com> | 2009-07-27 11:01:11 -0400 |
| commit | 235dd6db7e13ace096e46df9b78dcec36a3163a4 (patch) | |
| tree | d432092439cc571a6237ff4b042cb10f05de432a | |
| parent | 228e373b9e92910293b332b15f8cfd0876cd5bda (diff) | |
| download | systemtap-235dd6db7e13ace096e46df9b78dcec36a3163a4.tar.gz systemtap-235dd6db7e13ace096e46df9b78dcec36a3163a4.tar.xz systemtap-235dd6db7e13ace096e46df9b78dcec36a3163a4.zip | |
Updated nfsd_permission
Signed-off-by: Steve Dickson <steved@redhat.com>
| -rw-r--r-- | nfsd/nfsd_permission.stp | 27 | ||||
| -rw-r--r-- | tapset/fs.stp | 8 |
2 files changed, 32 insertions, 3 deletions
diff --git a/nfsd/nfsd_permission.stp b/nfsd/nfsd_permission.stp index 7e27ca5..d73e615 100644 --- a/nfsd/nfsd_permission.stp +++ b/nfsd/nfsd_permission.stp @@ -2,13 +2,34 @@ probe module("nfsd").function("nfsd_permission") { - printf("nfsd_permission: rqstp %p exp %p dentry %p acc 0x%x\n", - $rqstp, $exp, $dentry, $acc); + printf("nfsd_permission: rqstp %p exp %p dentry '%s' acc 0x%x\n", + $rqstp, $exp, dentry2name($dentry), $acc); printf(" : %s\n", svc_export_dump($exp)); } +probe kernel.function("inode_permission").return +{ + if ($return) + printf(" inode_permission: error: %d\n", $return); +} +probe kernel.function("security_inode_permission").return +{ + if ($return) + printf(" security_inode_permission: error: %d\n", $return); +} +probe kernel.function("devcgroup_inode_permission").return +{ + if ($return) + printf(" devcgroup_inode_permission: error: %d\n", $return); +} +probe kernel.function("generic_permission").return +{ + if ($return) + printf(" generic_permission: error: %d\n", $return); +} probe module("nfsd").function("nfsd_permission").return { - printf("nfsd_permission: %s\n", nfsderror($return)); + if ($return) + printf("nfsd_permission: error: %s\n", nfsderror($return)); } probe begin { log("starting nfsd_permission probe") } probe end { log("ending nfsd_permission probe") } diff --git a/tapset/fs.stp b/tapset/fs.stp index 85956e9..f8122bf 100644 --- a/tapset/fs.stp +++ b/tapset/fs.stp @@ -31,3 +31,11 @@ function file2name:string(filep:long) CATCH_DEREF_FAULT(); %} +function dentry2name:string(dentry_:long) +%{ + struct dentry *dentry = (struct dentry *)(long) kread(&(THIS->dentry_)); + + strlcpy(THIS->__retvalue, dentry->d_name.name, MAXSTRINGLEN); + + CATCH_DEREF_FAULT(); +%} |
