Blob Blame History Raw
commit 030e9465eadf7d3b3a278951264dac83b2f4b4f7
Author: David Smith <dsmith@redhat.com>
Date:   Wed Feb 22 10:04:00 2017 -0600

    Update the vfs.stp tapset for newer kernels.
    
    * tapset/linux/vfs.stp: Since the __block_write_begin() function can be
      inlined on newer kernels, we'll also probe
      __block_write_begin_int(). Also, check to see if '$file' is defined
      before using it in _vfs.block_write_begin.return.

diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp
index 4572bd7..32db300 100644
--- a/tapset/linux/vfs.stp
+++ b/tapset/linux/vfs.stp
@@ -1104,7 +1104,8 @@ probe _vfs.generic_commit_write = kernel.function("generic_commit_write") ?
 	argstr = sprintf("%p, %p, %d, %d", $file, $page, $from, $to)
 }
 
-probe _vfs.block_prepare_write = kernel.function("__block_write_begin") !,
+probe _vfs.block_prepare_write = kernel.function("__block_write_begin_int") !,
+				 kernel.function("__block_write_begin") !,
 				 kernel.function("__block_prepare_write")
 {
 	page = $page
@@ -1134,6 +1135,7 @@ probe _vfs.block_prepare_write = kernel.function("__block_write_begin") !,
 }
 
 probe _vfs.block_prepare_write.return =
+	kernel.function("__block_write_begin_int").return !,
 	kernel.function("__block_write_begin").return !,
 	kernel.function("__block_prepare_write").return
 {
@@ -1188,7 +1190,7 @@ probe _vfs.block_write_begin.return =
 	name = "_vfs.block_write_begin"
 	retstr = sprintf("%d", $return)
 
-	file = @entry($file)
+	file = @choose_defined(@entry($file), "")
         pathname = @defined(@entry($file)) ? fullpath_struct_file(task_current(), @entry($file)) : ""
 	pos = @entry($pos)
 	len = @entry($len)