summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tapset/dentry.stp16
1 files changed, 15 insertions, 1 deletions
diff --git a/tapset/dentry.stp b/tapset/dentry.stp
index 778832f9..1d045d02 100644
--- a/tapset/dentry.stp
+++ b/tapset/dentry.stp
@@ -30,6 +30,20 @@ function __dentry_prepend:string(dentry:long,name:string)
+%{
+#include <linux/sched.h>
+#include <linux/fs_struct.h>
+%}
+
+
+function __dentry_get_current_root:long()
+%{
+ THIS->__retvalue = (long)&current->fs->root;
+%}
+
+
+
+
/**
* sfunction d_name - get the dirent name
*
@@ -71,7 +85,7 @@ function reverse_path_walk:string(dentry:long)
*/
function d_path:string(nd:long)
{
- root = @cast(curr, "task_struct", "kernel<linux/sched.h>")->fs->root;
+ root = __dentry_get_current_root()
dentry = (@defined(@cast(nd,"nameidata")->path->dentry)
? @cast(nd,"nameidata")->path->dentry
: @cast(nd,"nameidata")->dentry)