43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
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)
|