[DTrace-devel] [PATCH v3] translators: support 6.10

Nick Alcock nick.alcock at oracle.com
Wed Jun 19 13:21:09 UTC 2024


This changed the block device into a component of an atomic
flags word (so we need to change the .d.in as well to pull in
the relevant #define for the blockdev portion of that flags word).

See kernel commit 1116b9fa15c09748ae05d2365a305fa22671eb1e.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
---
 libdtrace/io.d.in | 6 +++---
 libdtrace/io.m4   | 8 ++++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/libdtrace/io.d.in b/libdtrace/io.d.in
index b3da517778264..f44f53f092dce 100644
--- a/libdtrace/io.d.in
+++ b/libdtrace/io.d.in
@@ -1,6 +1,6 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
@@ -69,7 +69,7 @@ inline int REQ_SYNC = REQ_SYNC_VAL;
 define_for_kernel([[__bi_rw]], [[(m4_kver(4,8,0), [[bi_opf]])]], [[bi_rw]])
 define_for_kernel([[__disk]], [[(m4_kver(5,12,0), [[bi_bdev->bd_disk]]), (m4_kver(4,14,0), [[bi_disk]])]], [[bi_bdev->bd_disk]])
 define_for_kernel([[__disk_chk]], [[(m4_kver(5,12,0), [[bi_bdev]]), (m4_kver(4,14,0), [[bi_disk]])]], [[bi_bdev]])
-define_for_kernel([[__bio_partno]], [[(m4_kver(5,12,0), [[bi_bdev->bd_partno]]), (m4_kver(4,14,0), [[bi_partno]])]], [[bi_bdev->bd_part->partno]])
+define_for_kernel([[__bio_partno]], [[(m4_kver(6,10,0), [[bi_bdev->__bd_flags.counter & BD_PARTNO]]), (m4_kver(5,12,0), [[bi_bdev->bd_partno]]), (m4_kver(4,14,0), [[bi_partno]])]], [[bi_bdev->bd_part->partno]])
 define_for_kernel([[__bio_part_dev]], [[(m4_kver(5,12,0), [[bi_bdev->bd_dev]]), (m4_kver(5,11,0), [[bi_disk->part_tbl->part[B->bi_partno]->bd_dev]]), (m4_kver(4,14,0), [[bi_disk->part_tbl->part[B->bi_partno]->__dev.devt]])]], [[bi_bdev->bd_part->__dev.devt]])
 
 #pragma D binding "1.6.3" translator
@@ -98,7 +98,7 @@ typedef struct devinfo {
 } devinfo_t;
 
 define_for_kernel([[__bh_bdev_dev]], [[(m4_kver(5,11,0), [[b_bdev->bd_disk->part0->bd_device]])]], [[b_bdev->bd_disk->part0.__dev]])
-define_for_kernel([[__bdev_partno]], [[(m4_kver(5,11,0), [[bd_partno]])]], [[bd_part->partno]])
+define_for_kernel([[__bdev_partno]], [[(m4_kver(6,10,0), [[__bd_flags.counter & BD_PARTNO]]), (m4_kver(5,11,0), [[bd_partno]])]], [[bd_part->partno]])
 #pragma D binding "1.0" translator
 translator devinfo_t < struct buffer_head *B > {
 	dev_major = getmajor(B->b_bdev->bd_dev);
diff --git a/libdtrace/io.m4 b/libdtrace/io.m4
index e837ef65b86f7..d57225c911059 100644
--- a/libdtrace/io.m4
+++ b/libdtrace/io.m4
@@ -1,6 +1,6 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
@@ -11,7 +11,8 @@
  * to replace those tokens with their values to create the finished io.d.
  */
 
-/* #include <linux/buffer_head.h> */
+#include <linux/kconfig.h>
+#include <linux/buffer_head.h>
 #include <sys/file.h>
 #if 0
 #ifndef __USE_UNIX98
@@ -43,4 +44,7 @@ DEF_REPLACE(O_NOFOLLOW)
 DEF_REPLACE(O_CLOEXEC)
 DEF_REPLACE(O_DSYNC)
 DEF_REPLACE(O_RSYNC)
+#ifdef BD_PARTNO
+DEF_REPLACE(BD_PARTNO)
+#endif
 #include "io.platform.m4"

base-commit: 454c6d47bf408415f7eb52ea701779f041aa6957
-- 
2.45.1.275.g567cb0950c




More information about the DTrace-devel mailing list