28fdec
commit 8f3498781413a710dc9e128f5a96891a6a18fc52
28fdec
Author: Martin Cermak <mcermak@redhat.com>
28fdec
Date:   Wed Dec 14 17:37:58 2022 +0100
28fdec
28fdec
    PR29766: kernel.function("__set_page_dirty_buffers") not found in vfs.stp
28fdec
    
28fdec
    Updates needed for 6.1.0-65.fc38 compatibility.
28fdec
28fdec
diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp
28fdec
index e3c1a3032..aebeb3fc0 100644
28fdec
--- a/tapset/linux/vfs.stp
28fdec
+++ b/tapset/linux/vfs.stp
28fdec
@@ -822,13 +822,15 @@ probe vfs.buffer_migrate_page.return =
28fdec
 }
28fdec
 
28fdec
 /* default if aop not set, __set_page_dirty_nobuffers usually used if set */
28fdec
-probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")
28fdec
+/* block_dirty_folio related to kernel commit e621900ad28b748e058b81d6078 */
28fdec
+probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")!,
28fdec
+                                     kernel.function("block_dirty_folio")
28fdec
 {
28fdec
-	dev = __page_dev($page)
28fdec
-	devname = __find_bdevname(dev, __page_bdev($page))
28fdec
-	ino = __page_ino($page)
28fdec
+	dev = __page_dev(@choose_defined($page, $folio))
28fdec
+	devname = __find_bdevname(dev, __page_bdev(@choose_defined($page, $folio)))
28fdec
+	ino = __page_ino(@choose_defined($page, $folio))
28fdec
 
28fdec
-	index = __page_index($page)
28fdec
+	index = __page_index(@choose_defined($page, $folio))
28fdec
 
28fdec
 	name = "__set_page_dirty_buffers"
28fdec
 	argstr = sprintf("%d", index)
28fdec
@@ -837,7 +839,8 @@ probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")
28fdec
 	units = "pages"
28fdec
 }
28fdec
 probe vfs.__set_page_dirty_buffers.return =
28fdec
-	kernel.function("__set_page_dirty_buffers").return
28fdec
+	kernel.function("__set_page_dirty_buffers").return!,
28fdec
+        kernel.function("block_dirty_folio")
28fdec
 {
28fdec
 	name = "__set_page_dirty_buffers"
28fdec
 	retstr = sprintf("%d", $return)
28fdec
@@ -914,8 +917,9 @@ probe __vfs.ext4_mpage_readpages.return =
28fdec
 
28fdec
 
28fdec
 /* newer style */
28fdec
+/* add_to_page_cache_locked removed per kernel commit f00654007fe1c15 */
28fdec
 probe vfs.__add_to_page_cache =
28fdec
-	kernel.function("add_to_page_cache_locked"),
28fdec
+	kernel.function("add_to_page_cache_locked") !,
28fdec
 	kernel.function("add_to_page_cache_lru")
28fdec
      { }
28fdec
 
28fdec
@@ -939,7 +943,7 @@ probe vfs.add_to_page_cache =
28fdec
 
28fdec
 /* newer style */
28fdec
 probe vfs.__add_to_page_cache.return =
28fdec
-	kernel.function("add_to_page_cache_locked").return,
28fdec
+	kernel.function("add_to_page_cache_locked").return !,
28fdec
 	kernel.function("add_to_page_cache_lru").return
28fdec
      { }
28fdec
 
28fdec
@@ -958,7 +962,7 @@ probe vfs.add_to_page_cache.return =
28fdec
 
28fdec
 probe vfs.remove_from_page_cache =
28fdec
 	kernel.function("__delete_from_page_cache") !,
28fdec
-	kernel.function("__remove_from_page_cache")
28fdec
+	kernel.function("__remove_from_page_cache") ?
28fdec
 {
28fdec
 	dev = __page_dev($page)
28fdec
 	devname = __find_bdevname(dev, __page_bdev($page))