[Bug tapsets/16057] New: task_dentry_path fails to cross mount points
jistone at redhat dot com
sourceware-bugzilla@sourceware.org
Thu Oct 17 00:14:00 GMT 2013
https://sourceware.org/bugzilla/show_bug.cgi?id=16057
Bug ID: 16057
Summary: task_dentry_path fails to cross mount points
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: tapsets
Assignee: systemtap at sourceware dot org
Reporter: jistone at redhat dot com
On kernel-3.11.4-201.fc19.x86_64, task_dentry_path always returns "<unknown>"
for paths which cross mount points. This can only occur when real_mount
returns 0. I found that it's failing the (vfsmnt > offset) test, because
vfsmnt as a signed quantity looks negative. (AFAIK all kernel pointers will
have the MSB set.)
After fixing that test to allow "negative" pointers, the iteration hits bogus
pointer values for dentry and vfsmnt. I got NULL, but on IRC ciupicri reported
values that look like random garbage. I tracked this to the assignment:
vfsmnt = @cast(mnt, "mount")->mnt_parent
... which is a problem because ->mnt_parent is another struct mount, not a
struct vfsmount as we are interpreting it from there. This works for me:
vfsmnt = &@cast(mnt, "mount")->mnt_parent->mnt
These bugs won't apply to kernels before the struct mount refactoring in 3.3.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Systemtap
mailing list