summaryrefslogtreecommitdiffstats
path: root/nfsd/nfsd_permission.stp
diff options
context:
space:
mode:
Diffstat (limited to 'nfsd/nfsd_permission.stp')
-rw-r--r--nfsd/nfsd_permission.stp22
1 files changed, 17 insertions, 5 deletions
diff --git a/nfsd/nfsd_permission.stp b/nfsd/nfsd_permission.stp
index 63969a9..09786ea 100644
--- a/nfsd/nfsd_permission.stp
+++ b/nfsd/nfsd_permission.stp
@@ -1,6 +1,6 @@
#!/usr/bin/env stap
-global acl_inode, acl_mask, acl_check;
+global acl_inode, acl_mask, acl_check, inode_mask;
probe module("nfsd").function("nfsd_permission")
{
@@ -18,8 +18,16 @@ probe kernel.function("acl_permission_check")
probe kernel.function("acl_permission_check").return
{
if ($return)
- printf(" acl_permission_check: inode 0x%p uid %s %s error: %d\n",
- acl_inode, inode_uid(acl_inode), file_modes(acl_mask), $return);
+ printf(" acl_permission_check: inode 0x%p uid %s %s %s error: %d\n",
+ acl_inode, inode_uid(acl_inode), file_modes(acl_mask), file_modes(inode_mode(acl_inode)), $return);
+}
+probe kernel.function("ext4_check_acl").return
+{
+ printf(" ext4_check_acl: error: %d\n", $return);
+}
+probe kernel.function("posix_acl_permission").return
+{
+ printf(" posix_acl_permission: error: %d\n", $return);
}
/*
a very busy probe
@@ -30,11 +38,15 @@ probe kernel.function("selinux_inode_permission").return
}
*/
+probe kernel.function("inode_permission")
+{
+ inode_mask = $mask
+}
probe kernel.function("inode_permission").return
{
if ($return)
- printf(" inode_permission: uid %d gid %d: mode 0%o: flags 0x%x: mask 0x%x: error: %d\n",
- $inode->i_uid, $inode->i_gid, $inode->i_mode, $inode->i_flags,
+ printf(" inode_permission: uid %d gid %d: mask %s imode %s: iflags 0x%x: mask 0x%x: error: %d\n",
+ $inode->i_uid, $inode->i_gid, file_modes(inode_mask), file_modes($inode->i_mode), $inode->i_flags,
$mask, $return);
}
probe kernel.function("security_inode_permission").return