diff options
author | Josh Stone <jistone@redhat.com> | 2010-03-12 11:39:52 -0800 |
---|---|---|
committer | Josh Stone <jistone@redhat.com> | 2010-03-12 11:39:52 -0800 |
commit | 8d2d198796f66c82b7147cd9167c1a43265b9ba2 (patch) | |
tree | 6e50d43d8ae342b4ad443f0fdbd7529d243b6f34 | |
parent | cd4d1d39af22d4a06ebe48209feb0b408c331887 (diff) | |
download | systemtap-steved-8d2d198796f66c82b7147cd9167c1a43265b9ba2.tar.gz systemtap-steved-8d2d198796f66c82b7147cd9167c1a43265b9ba2.tar.xz systemtap-steved-8d2d198796f66c82b7147cd9167c1a43265b9ba2.zip |
Get d_path's root natively with @cast
As mjw's aborted commit 5ab0b1b6 attempted, we can use a @cast to get
the filesystem root for the current task instead of embedded-C. I've
left it using the kernel debuginfo instead of headers for now, because
all of the neighboring @casts are doing the same.
* tapset/dentry.stp (d_path): Use @cast to get the root.
(__dentry_get_current_root): Remove, no longer needed.
* testsuite/buildok/dentry.stp: Test that dentry's functions all build.
-rw-r--r-- | tapset/dentry.stp | 16 | ||||
-rwxr-xr-x | testsuite/buildok/dentry.stp | 8 |
2 files changed, 9 insertions, 15 deletions
diff --git a/tapset/dentry.stp b/tapset/dentry.stp index 1d045d02..bae022da 100644 --- a/tapset/dentry.stp +++ b/tapset/dentry.stp @@ -30,20 +30,6 @@ 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)¤t->fs->root; -%} - - - - /** * sfunction d_name - get the dirent name * @@ -85,7 +71,7 @@ function reverse_path_walk:string(dentry:long) */ function d_path:string(nd:long) { - root = __dentry_get_current_root() + root = & @cast(task_current(), "task_struct")->fs->root dentry = (@defined(@cast(nd,"nameidata")->path->dentry) ? @cast(nd,"nameidata")->path->dentry : @cast(nd,"nameidata")->dentry) diff --git a/testsuite/buildok/dentry.stp b/testsuite/buildok/dentry.stp new file mode 100755 index 00000000..ed9b7c08 --- /dev/null +++ b/testsuite/buildok/dentry.stp @@ -0,0 +1,8 @@ +#! stap -p4 + +probe begin +{ + println(d_name(0)) + println(d_path(0)) + println(reverse_path_walk(0)) +} |