This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/16057] New: task_dentry_path fails to cross mount points
- From: "jistone at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 17 Oct 2013 00:13:59 +0000
- Subject: [Bug tapsets/16057] New: task_dentry_path fails to cross mount points
- Auto-submitted: auto-generated
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.