Blob Blame History Raw
commit 8f3498781413a710dc9e128f5a96891a6a18fc52
Author: Martin Cermak <mcermak@redhat.com>
Date:   Wed Dec 14 17:37:58 2022 +0100

    PR29766: kernel.function("__set_page_dirty_buffers") not found in vfs.stp
    
    Updates needed for 6.1.0-65.fc38 compatibility.

diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp
index e3c1a3032..aebeb3fc0 100644
--- a/tapset/linux/vfs.stp
+++ b/tapset/linux/vfs.stp
@@ -822,13 +822,15 @@ probe vfs.buffer_migrate_page.return =
 }
 
 /* default if aop not set, __set_page_dirty_nobuffers usually used if set */
-probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")
+/* block_dirty_folio related to kernel commit e621900ad28b748e058b81d6078 */
+probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")!,
+                                     kernel.function("block_dirty_folio")
 {
-	dev = __page_dev($page)
-	devname = __find_bdevname(dev, __page_bdev($page))
-	ino = __page_ino($page)
+	dev = __page_dev(@choose_defined($page, $folio))
+	devname = __find_bdevname(dev, __page_bdev(@choose_defined($page, $folio)))
+	ino = __page_ino(@choose_defined($page, $folio))
 
-	index = __page_index($page)
+	index = __page_index(@choose_defined($page, $folio))
 
 	name = "__set_page_dirty_buffers"
 	argstr = sprintf("%d", index)
@@ -837,7 +839,8 @@ probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")
 	units = "pages"
 }
 probe vfs.__set_page_dirty_buffers.return =
-	kernel.function("__set_page_dirty_buffers").return
+	kernel.function("__set_page_dirty_buffers").return!,
+        kernel.function("block_dirty_folio")
 {
 	name = "__set_page_dirty_buffers"
 	retstr = sprintf("%d", $return)
@@ -914,8 +917,9 @@ probe __vfs.ext4_mpage_readpages.return =
 
 
 /* newer style */
+/* add_to_page_cache_locked removed per kernel commit f00654007fe1c15 */
 probe vfs.__add_to_page_cache =
-	kernel.function("add_to_page_cache_locked"),
+	kernel.function("add_to_page_cache_locked") !,
 	kernel.function("add_to_page_cache_lru")
      { }
 
@@ -939,7 +943,7 @@ probe vfs.add_to_page_cache =
 
 /* newer style */
 probe vfs.__add_to_page_cache.return =
-	kernel.function("add_to_page_cache_locked").return,
+	kernel.function("add_to_page_cache_locked").return !,
 	kernel.function("add_to_page_cache_lru").return
      { }
 
@@ -958,7 +962,7 @@ probe vfs.add_to_page_cache.return =
 
 probe vfs.remove_from_page_cache =
 	kernel.function("__delete_from_page_cache") !,
-	kernel.function("__remove_from_page_cache")
+	kernel.function("__remove_from_page_cache") ?
 {
 	dev = __page_dev($page)
 	devname = __find_bdevname(dev, __page_bdev($page))