diff options
Diffstat (limited to 'nfsd/nfsd_permission.stp')
-rw-r--r-- | nfsd/nfsd_permission.stp | 22 |
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 |