diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-08-28 14:44:06 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-08-28 14:44:06 -0400 |
commit | 30f926f0b0a198dd416ea735353e852a7ee79d69 (patch) | |
tree | 7c924e8de6a9a38ee904d9793f0bafffc00b8d85 /tapset/socket.stp | |
parent | fb84c077272764f8cb000e9b02572fb7c9cac24f (diff) | |
parent | 84f00e279d98edba986225386c7183db3c5968b0 (diff) | |
download | systemtap-steved-30f926f0b0a198dd416ea735353e852a7ee79d69.tar.gz systemtap-steved-30f926f0b0a198dd416ea735353e852a7ee79d69.tar.xz systemtap-steved-30f926f0b0a198dd416ea735353e852a7ee79d69.zip |
Merge commit 'origin/master' into pr4225
* commit 'origin/master':
PR5686: correct regression in semok/optimize.stp
trailing whitespace removal, as approved by emacs
fix global-var array index rendering
fix NEWS to refer to simpler context.stp tapset functions in auto-printing blurb
Document written but unread global variable automatic display.
2nd try
initial
Make _get_sock_addr return correct address in kernel before 2.6.16.
Automatically print written but unread globals
Make nodwf test passed when CONFIG_QUOTACTL unset
Uses STAPCONF_DPATH_PATH instead of a kernel version check.
Simplified "rpm" target a bit.
Moved tar archive creation step from "rpm" target to "dist-gzip" target.
remove support for "make dist" since git-archive does as well;
Examples html files moved into subdir.
2008-08-25 David Smith <dsmith@redhat.com>
ChangeLog Entries
Robustness improvements for the stap client/server
Diffstat (limited to 'tapset/socket.stp')
-rw-r--r-- | tapset/socket.stp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/tapset/socket.stp b/tapset/socket.stp index 54a7c71f..3197a0e2 100644 --- a/tapset/socket.stp +++ b/tapset/socket.stp @@ -910,7 +910,14 @@ function _success_check(ret:long) function _get_sock_addr:long (file:long) %{ /* pure */ struct file *filep = (struct file *)(long)(THIS->file); - struct socket *sockp = filep? kread(&(filep->private_data)) : NULL; + struct socket *sockp; + if (filep) { + struct dentry *dentry = kread(&(filep->f_dentry)); + struct inode *inode = kread(&(dentry->d_inode)); + sockp = &container_of(inode, struct socket_alloc, vfs_inode)->socket; + } else { + sockp = NULL; + } if (sockp == NULL) THIS->__retvalue = -1; else |