From: Steve Dickson Date: Wed, 3 Mar 2010 17:06:22 +0000 (-0500) Subject: Backport recent changes to RHEL5 (U5) X-Git-Tag: release-1.2~71 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=7efb5a844990aa530c22cbb27bf2de9eec5ee133;p=systemtap.git Backport recent changes to RHEL5 (U5) Ensured the recent additions of v4 probes and supporting routines worked with RHEL5 U5 kernel. Signed-off-by: Steve Dickson --- diff --git a/tapset/nfsd.stp b/tapset/nfsd.stp index 96fd285d1..4406e74c7 100644 --- a/tapset/nfsd.stp +++ b/tapset/nfsd.stp @@ -12,11 +12,12 @@ %{ #include +#include + #include #include #include -#include %} @@ -186,7 +187,6 @@ probe nfsd.proc.entries = nfsd.proc.lookup, nfsd.proc.read, nfsd.proc.write, nfsd.proc.commit, - nfsd.proc.compound, nfsd.proc.remove, nfsd.proc.rename, nfsd.proc.create @@ -195,8 +195,6 @@ probe nfsd.proc.entries = nfsd.proc.lookup, probe nfsd.proc.return = nfsd.proc.lookup.return, nfsd.proc.read.return, nfsd.proc.write.return, - nfsd.proc.commit.return, - nfsd.proc.compound.return, nfsd.proc.remove.return, nfsd.proc.rename.return, nfsd.proc.create.return @@ -220,8 +218,10 @@ probe nfsd.proc.lookup = nfsd.proc2.lookup, {} probe nfsd.proc.lookup.return = nfsd.proc2.lookup.return, - nfsd.proc3.lookup.return, - nfsd.proc4.lookup.return + nfsd.proc3.lookup.return +%( kernel_v >= "2.6.25" %? + ,nfsd.proc4.lookup.return +%) {} probe nfsd.proc2.lookup = kernel.function("nfsd_proc_lookup") !, @@ -290,6 +290,7 @@ probe nfsd.proc4.lookup = kernel.function("nfsd4_lookup") !, argstr = sprintf("%s", kernel_string_n($lookup->lo_name, $lookup->lo_len)) } +%( kernel_v >= "2.6.25" %? probe nfsd.proc4.lookup.return = kernel.function("nfsd4_lookup").return !, module("nfsd").function("nfsd4_lookup").return ? { @@ -299,6 +300,7 @@ probe nfsd.proc4.lookup.return = kernel.function("nfsd4_lookup").return !, version = 4 retstr = sprintf("%s", nfsderror($return)) } +%) /* *probe nfsd.proc.read @@ -322,8 +324,10 @@ probe nfsd.proc.read = nfsd.proc2.read, {} probe nfsd.proc.read.return = nfsd.proc2.read.return, - nfsd.proc3.read.return, - nfsd.proc4.read.return + nfsd.proc3.read.return +%( kernel_v >= "2.6.25" %? + ,nfsd.proc4.read.return +%) {} probe nfsd.proc2.read = kernel.function("nfsd_proc_read")!, @@ -415,6 +419,7 @@ probe nfsd.proc4.read = kernel.function("nfsd4_read") !, units = "bytes" } +%( kernel_v >= "2.6.25" %? probe nfsd.proc4.read.return = kernel.function("nfsd4_read").return!, module("nfsd").function("nfsd4_read").return? { @@ -424,6 +429,7 @@ probe nfsd.proc4.read.return = kernel.function("nfsd4_read").return!, version = 4 retstr = sprintf("%s", nfsderror($return)) } +%) /* *probe nfsd.proc.write @@ -448,8 +454,10 @@ probe nfsd.proc.write = nfsd.proc2.write, {} probe nfsd.proc.write.return = nfsd.proc2.write.return, - nfsd.proc3.write.return, - nfsd.proc4.write.return + nfsd.proc3.write.return +%( kernel_v >= "2.6.25" %? + ,nfsd.proc4.write.return +%) {} probe nfsd.proc2.write = kernel.function("nfsd_proc_write")!, @@ -544,6 +552,7 @@ probe nfsd.proc4.write = kernel.function("nfsd4_write") !, units = "bytes" } +%( kernel_v >= "2.6.25" %? probe nfsd.proc4.write.return = kernel.function("nfsd4_write").return!, module("nfsd").function("nfsd4_write").return? { @@ -556,6 +565,7 @@ probe nfsd.proc4.write.return = kernel.function("nfsd4_write").return!, retstr = sprintf("%s", nfsderror($return)) } +%) /* *probe nfsd.proc.commit * Fires when client does a commit operation,which is @@ -651,8 +661,10 @@ probe nfsd.proc.create = nfsd.proc2.create, nfsd.proc4.create {} probe nfsd.proc.create.return = nfsd.proc2.create.return, - nfsd.proc3.create.return, - nfsd.proc4.create.return + nfsd.proc3.create.return +%( kernel_v >= "2.6.25" %? + ,nfsd.proc4.create.return +%) {} probe nfsd.proc2.create = kernel.function("nfsd_proc_create")!, @@ -725,6 +737,7 @@ probe nfsd.proc4.create = kernel.function("nfsd4_create") !, } +%( kernel_v >= "2.6.25" %? probe nfsd.proc4.write.create = kernel.function("nfsd4_create").return!, module("nfsd").function("nfsd4_create").return? { @@ -734,6 +747,7 @@ probe nfsd.proc4.write.create = kernel.function("nfsd4_create").return!, version = 4 retstr = sprintf("%s", nfsderror($return)) } +%) /* *probe nfsd.proc.remove @@ -752,8 +766,10 @@ probe nfsd.proc.remove = nfsd.proc2.remove, nfsd.proc4.remove {} probe nfsd.proc.remove.return = nfsd.proc2.remove.return, - nfsd.proc3.remove.return, - nfsd.proc4.remove.return + nfsd.proc3.remove.return +%( kernel_v >= "2.6.25" %? + ,nfsd.proc4.remove.return +%) {} probe nfsd.proc2.remove = kernel.function("nfsd_proc_remove")!, @@ -822,6 +838,7 @@ probe nfsd.proc4.remove = kernel.function("nfsd4_remove") !, } +%( kernel_v >= "2.6.25" %? probe nfsd.proc4.remove.return = kernel.function("nfsd4_remove").return!, module("nfsd").function("nfsd4_remove").return? { @@ -831,6 +848,7 @@ probe nfsd.proc4.remove.return = kernel.function("nfsd4_remove").return!, version = 4 retstr = sprintf("%s", nfsderror($return)) } +%) /* * probe nfsd.proc.rename * Fires when clients rename a file on server side @@ -850,8 +868,10 @@ probe nfsd.proc.rename = nfsd.proc2.rename, {} probe nfsd.proc.rename.return = nfsd.proc2.rename.return, - nfsd.proc3.rename.return, - nfsd.proc4.rename.return + nfsd.proc3.rename.return +%( kernel_v >= "2.6.25" %? + ,nfsd.proc4.rename.return +%) {} probe nfsd.proc2.rename = kernel.function("nfsd_proc_rename")!, @@ -913,7 +933,6 @@ probe nfsd.proc3.rename.return = kernel.function("nfsd3_proc_rename").return!, version = 3 retstr = sprintf("%s", nfsderror($return)) } - probe nfsd.proc4.rename = kernel.function("nfsd4_rename") !, module("nfsd").function("nfsd4_rename") ? { @@ -934,6 +953,7 @@ probe nfsd.proc4.rename = kernel.function("nfsd4_rename") !, kernel_string_n($rename->rn_tname, $rename->rn_tnamelen)) } +%( kernel_v >= "2.6.25" %? probe nfsd.proc4.rename.return = kernel.function("nfsd4_rename").return!, module("nfsd").function("nfsd4_rename").return? { @@ -943,6 +963,7 @@ probe nfsd.proc4.rename.return = kernel.function("nfsd4_rename").return!, version = 4 retstr = sprintf("%s", nfsderror($return)) } +%) probe nfsd.entries = nfsd.open, nfsd.read, @@ -1007,6 +1028,7 @@ probe nfsd.open.return = kernel.function("nfsd_open").return !, probe nfsd.close = kernel.function("nfsd_close")!, module("nfsd").function("nfsd_close")? { + client_ip ="N/A" filename = __file_filename($filp) name = "nfsd.close" @@ -1084,7 +1106,11 @@ probe nfsd.write = kernel.function("nfsd_write")!, %( kernel_v >= "2.6.12" %? file = $file %) +%( kernel_v >= "2.6.30" %? count = p_long($cnt) +%: + count = $cnt +%) offset = $offset vec = $vec vlen = $vlen diff --git a/tapset/nfsderrno.stp b/tapset/nfsderrno.stp index 6ac4cacbf..5472892b2 100644 --- a/tapset/nfsderrno.stp +++ b/tapset/nfsderrno.stp @@ -73,6 +73,7 @@ #define nfserr_cb_path_down cpu_to_be32(NFSERR_CB_PATH_DOWN) #define nfserr_locked cpu_to_be32(NFSERR_LOCKED) #define nfserr_wrongsec cpu_to_be32(NFSERR_WRONGSEC) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) #define nfserr_badiomode cpu_to_be32(NFS4ERR_BADIOMODE) #define nfserr_badlayout cpu_to_be32(NFS4ERR_BADLAYOUT) #define nfserr_bad_session_digest cpu_to_be32(NFS4ERR_BAD_SESSION_DIGEST) @@ -111,6 +112,7 @@ #define nfserr_reject_deleg cpu_to_be32(NFS4ERR_REJECT_DELEG) #define nfserr_returnconflict cpu_to_be32(NFS4ERR_RETURNCONFLICT) #define nfserr_deleg_revoked cpu_to_be32(NFS4ERR_DELEG_REVOKED) +#endif %} function nfsderror:string(err:long) @@ -182,6 +184,7 @@ function nfsderror:string(err:long) {nfserr_cb_path_down, "NFSERR_CB_PATH_DOWN"}, {nfserr_locked, "NFSERR_LOCKED"}, {nfserr_wrongsec, "NFSERR_WRONGSEC"}, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) {nfserr_badiomode, "NFS4ERR_BADIOMODE"}, {nfserr_badlayout, "NFS4ERR_BADLAYOUT"}, {nfserr_bad_session_digest, "NFS4ERR_BAD_SESSION_DIGEST"}, @@ -220,6 +223,7 @@ function nfsderror:string(err:long) {nfserr_reject_deleg, "NFS4ERR_REJECT_DELEG"}, {nfserr_returnconflict, "NFS4ERR_RETURNCONFLICT"}, {nfserr_deleg_revoked, "NFS4ERR_DELEG_REVOKED"}, +#endif }; int i; int tabsz = (sizeof(nfs_errtbl)/sizeof(nfs_errtbl[0])); diff --git a/tapset/rpc.stp b/tapset/rpc.stp index 3e65d0ea3..d8f2fadc9 100644 --- a/tapset/rpc.stp +++ b/tapset/rpc.stp @@ -996,7 +996,12 @@ function addr_from_rqst_str:string(_rqstp:long) unsigned char *bytes; if (rqstp) { - if (rqstp->rq_addr.ss_family == AF_INET) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) + if (rqstp->rq_addr.ss_family == AF_INET) +#else + if (rqstp->rq_addr.sin_family == AF_INET) +#endif + { addr = (struct sockaddr_in *) &rqstp->rq_addr; bytes = (unsigned char *)&addr->sin_addr.s_addr;