diff options
author | guanglei <guanglei> | 2006-12-29 08:02:07 +0000 |
---|---|---|
committer | guanglei <guanglei> | 2006-12-29 08:02:07 +0000 |
commit | 5282f2bda20be7380a06afc339538d64c5e8e611 (patch) | |
tree | c37852d3214efc52cb9bf5609d9e95b72a4930c3 /tapset/nfs_proc.stp | |
parent | a9711974fa10d0c8cb57247183fadcf93cb06c91 (diff) | |
download | systemtap-steved-5282f2bda20be7380a06afc339538d64c5e8e611.tar.gz systemtap-steved-5282f2bda20be7380a06afc339538d64c5e8e611.tar.xz systemtap-steved-5282f2bda20be7380a06afc339538d64c5e8e611.zip |
bugfix for 2.6.19 kernel
Diffstat (limited to 'tapset/nfs_proc.stp')
-rw-r--r-- | tapset/nfs_proc.stp | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/tapset/nfs_proc.stp b/tapset/nfs_proc.stp index 6284ce63..b8226630 100644 --- a/tapset/nfs_proc.stp +++ b/tapset/nfs_proc.stp @@ -14,10 +14,14 @@ { struct rpc_clnt * tk_client; struct rpc_xprt * cl_xprt; + struct sockaddr_in *addr; tk_client = task->tk_client; cl_xprt= tk_client->cl_xprt; - - return cl_xprt->addr.sin_addr.s_addr; + addr = (struct sockaddr_in *)&(cl_xprt->addr); + if (addr->sin_family != AF_INET) + /* Now consider ipv4 only */ + return 0; + return addr->sin_addr.s_addr; } int get_prot(struct rpc_task * task) { @@ -34,16 +38,20 @@ 1:get proto */ function __i2n_ip_proto :long(dir:long,index:long) %{ /* pure */ - int index = (int) (THIS->index); - struct inode * dir = (struct inode *)(THIS->dir); + int index = (int) (THIS->index); + struct inode * dir = (struct inode *)(THIS->dir); struct rpc_clnt * clnt = NFS_CLIENT(dir); struct rpc_xprt * cl_xprt = clnt->cl_xprt; - struct sockaddr_in * addr = &(cl_xprt->addr); - - if(index == 0) - THIS->__retvalue = addr->sin_addr.s_addr; - else - THIS->__retvalue = cl_xprt->prot; + struct sockaddr_in * addr = (struct sockaddr_in *)&(cl_xprt->addr); + + if(index == 0) { + if (addr->sin_family == AF_INET) { + /* Now consider ipv4 only */ + THIS->__retvalue = addr->sin_addr.s_addr; + } else + THIS->__retvalue = 0; + } else + THIS->__retvalue = cl_xprt->prot; %} /* @@ -1220,7 +1228,7 @@ probe nfs.proc.open = kernel.function("nfs_open") ?, prot = __i2n_ip_proto($inode,1) version = __nfs_version($inode) - filename = kernel_string($filp->f_dentry->d_name->name) + filename = __file_filename($filp) flag = $filp->f_flags mode = $filp->f_mode @@ -1254,7 +1262,7 @@ probe nfs.proc.release= kernel.function("nfs_release") ?, prot = __i2n_ip_proto($inode,1) version = __nfs_version($inode) - filename = kernel_string($filp->f_dentry->d_name->name) + filename = __file_filename($filp) flag = $filp->f_flags mode = $filp->f_mode |