Blob Blame History Raw
commit 9989c537437c3cfffae61e33bbe4fe60ac1c7eed
Author: David Smith <dsmith@redhat.com>
Date:   Tue Mar 28 16:36:30 2017 -0500

    Workaround parser issue in nfs_proc.stp.
    
    * tapset/linux/nfs_proc.stp (nfs.proc3.read_done): To avoid parser issues,
      split up @choose_defined() code into two separate if statements. Note
      that this is a workaround until we can fix the parser issue.
      (nfs.proc4.read_done): Ditto.

diff --git a/tapset/linux/nfs_proc.stp b/tapset/linux/nfs_proc.stp
index 2c0bd8d..140e643 100644
--- a/tapset/linux/nfs_proc.stp
+++ b/tapset/linux/nfs_proc.stp
@@ -889,10 +889,15 @@ probe nfs.proc3.read_done = kernel.function("nfs3_read_done") !,
 			    module("nfs").function("nfs3_read_done") ?,
 			    module("nfsv3").function("nfs3_read_done") ?
 {
-	if (@defined($hdr) || @defined($data)) {	# kernels >= 2.6.10
-		server_ip = @_nfs_data_server_ip(@choose_defined($hdr, $data))
-		prot = @_nfs_data_prot(@choose_defined($hdr, $data))
-		count = @_nfs_data_res_count(@choose_defined($hdr, $data))
+	if (@defined($hdr)) {				# kernels >= 3.17
+		server_ip = @_nfs_data_server_ip($hdr)
+		prot = @_nfs_data_prot($hdr)
+		count = @_nfs_data_res_count($hdr)
+	}
+	else if (@defined($data)) {			# kernels >= 2.6.10
+		server_ip = @_nfs_data_server_ip($data)
+		prot = @_nfs_data_prot($data)
+		count = @_nfs_data_res_count($data)
 	}
 	else {
 		server_ip = @_nfs_data_server_ip($task->tk_calldata)
@@ -923,11 +928,17 @@ probe nfs.proc4.read_done = kernel.function("nfs4_read_done") !,
 			    module("nfs").function("nfs4_read_done") ?,
 			    module("nfsv4").function("nfs4_read_done") ?
 {
-	if (@defined($hdr) || @defined($data)) {	# kernels >= 2.6.10
-		server_ip = @_nfs_data_server_ip(@choose_defined($hdr, $data))
-		prot = @_nfs_data_prot(@choose_defined($hdr, $data))
-		count = @_nfs_data_res_count(@choose_defined($hdr, $data))
-		timestamp = @_nfs_data_timestamp(@choose_defined($hdr, $data))
+	if (@defined($hdr)) {				# kernels >= 3.17
+		server_ip = @_nfs_data_server_ip($hdr)
+		prot = @_nfs_data_prot($hdr)
+		count = @_nfs_data_res_count($hdr)
+		timestamp = @_nfs_data_timestamp($hdr)
+	}
+	else if (@defined($data)) {			# kernels >= 2.6.10
+		server_ip = @_nfs_data_server_ip($data)
+		prot = @_nfs_data_prot($data)
+		count = @_nfs_data_res_count($data)
+		timestamp = @_nfs_data_timestamp($data)
 	}
 	else {
 		server_ip = @_nfs_data_server_ip($task->tk_calldata)