diff options
author | David Smith <dsmith@redhat.com> | 2009-11-16 12:58:46 -0600 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-11-16 12:58:46 -0600 |
commit | 1bc3d8e1a940e67d8e0e3f9a04cfc53d8bced85e (patch) | |
tree | cb44703bd0582cc82f3cfbca23272af51b1ddcde | |
parent | f9a0679356e44ff13347a4d810017e0a69850e03 (diff) | |
download | systemtap-steved-1bc3d8e1a940e67d8e0e3f9a04cfc53d8bced85e.tar.gz systemtap-steved-1bc3d8e1a940e67d8e0e3f9a04cfc53d8bced85e.tar.xz systemtap-steved-1bc3d8e1a940e67d8e0e3f9a04cfc53d8bced85e.zip |
PR 5150 partial fix. Support nfs_write_begin()/nfs_write_end().
* tapset/nfs.stp: Added support for nfs_write_begin()/nfs_write_end(),
which replaced nfs_prepare_write()/nfs_commit_write().
-rw-r--r-- | tapset/nfs.stp | 80 |
1 files changed, 76 insertions, 4 deletions
diff --git a/tapset/nfs.stp b/tapset/nfs.stp index 6b7d5eeb..7d0ebc35 100644 --- a/tapset/nfs.stp +++ b/tapset/nfs.stp @@ -816,8 +816,8 @@ probe nfs.aop.entries = nfs.aop.readpage, nfs.aop.writepage, nfs.aop.writepages, nfs.aop.release_page ?, - nfs.aop.prepare_write, - nfs.aop.commit_write + nfs.aop.__write_begin_func, + nfs.aop.__write_end_func { } @@ -826,8 +826,8 @@ probe nfs.aop.return = nfs.aop.readpage.return, nfs.aop.writepage.return, nfs.aop.writepages.return, nfs.aop.release_page.return ?, - nfs.aop.prepare_write.return, - nfs.aop.commit_write.return + nfs.aop.__write_begin_func.return, + nfs.aop.__write_end_func.return { } @@ -1064,6 +1064,78 @@ probe nfs.aop.writepages.return = kernel.function ("nfs_writepages").return !, retstr = sprintf("%d", $return) } +# kernel commit 4899f9c852564ce7b6d0ca932ac6674bf471fd28 removed +# nfs_prepare_write()/nfs_commit_write() and created +# nfs_write_begin()/nfs_write_end(). So, we try to find whatever the +# current kernel has. + +probe nfs.aop.__write_begin_func = nfs.aop.write_begin !, + nfs.aop.prepare_write +{ +} +probe nfs.aop.__write_begin_func.return + = nfs.aop.write_begin.return !, + nfs.aop.prepare_write.return +{ +} + +probe nfs.aop.__write_end_func = nfs.aop.write_end !, + nfs.aop.commit_write +{ +} +probe nfs.aop.__write_end_func.return + = nfs.aop.write_end.return !, + nfs.aop.commit_write.return +{ +} + +probe nfs.aop.write_begin = kernel.function ("nfs_write_begin") !, + module("nfs").function("nfs_write_begin") +{ + dev = __file_dev($file) + ino = __file_ino($file) + s_id = __file_id($file) + devname = kernel_string(s_id) + + pos = $pos + count = $len + + name = "nfs.aop.write_begin" + argstr = sprintf("%d", ino) + + units = "bytes" +} +probe nfs.aop.write_begin.return + = kernel.function ("nfs_write_begin").return !, + module("nfs").function ("nfs_write_begin").return +{ + name = "nfs.aop.write_begin.return" + retstr = sprintf("%d", $return) +} + +probe nfs.aop.write_end = kernel.function ("nfs_write_end") !, + module("nfs").function("nfs_write_end") +{ + dev = __file_dev($file) + ino = __file_ino($file) + s_id = __file_id($file) + devname = kernel_string(s_id) + + pos = $pos + count = $len + + name = "nfs.aop.write_end" + argstr = sprintf("%d", ino) + + units = "bytes" +} +probe nfs.aop.write_end.return = kernel.function ("nfs_write_end").return !, + module("nfs").function("nfs_write_end").return +{ + name = "nfs.aop.write_end.return" + retstr = sprintf("%d", $return) +} + /* probe nfs.aop.prepare_write * Fires when do write operation on nfs. * Prepare a page for writing |