summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorColeman Kane <[email protected]>2021-02-22 21:18:41 -0500
committerBrian Behlendorf <[email protected]>2021-02-24 10:06:05 -0800
commit778fa36ee79bc8887f3b4bb2c3bb09784a3fb33c (patch)
tree94948c25649169761281d86c9224809738a066f8 /include
parentd939930fccbf7382c3525bba59cc04e9afc28fdc (diff)
Linux 5.12 compat: replace bio_*_io_acct with disk_*_io_acct
The bio_*_acct functions became GPL exports, which causes the kernel modules to refuse to compile. This replaces code with alternate function calls to the disk_*_io_acct interfaces, which are not GPL exports. This change was added in kernel commit 99dfc43ecbf67f12a06512918aaba61d55863efc. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes #11639
Diffstat (limited to 'include')
-rw-r--r--include/os/linux/kernel/linux/blkdev_compat.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/os/linux/kernel/linux/blkdev_compat.h b/include/os/linux/kernel/linux/blkdev_compat.h
index e41b248b0..ee066537b 100644
--- a/include/os/linux/kernel/linux/blkdev_compat.h
+++ b/include/os/linux/kernel/linux/blkdev_compat.h
@@ -520,7 +520,9 @@ blk_generic_start_io_acct(struct request_queue *q __attribute__((unused)),
struct gendisk *disk __attribute__((unused)),
int rw __attribute__((unused)), struct bio *bio)
{
-#if defined(HAVE_BIO_IO_ACCT)
+#if defined(HAVE_DISK_IO_ACCT)
+ return (disk_start_io_acct(disk, bio_sectors(bio), bio_op(bio)));
+#elif defined(HAVE_BIO_IO_ACCT)
return (bio_start_io_acct(bio));
#elif defined(HAVE_GENERIC_IO_ACCT_3ARG)
unsigned long start_time = jiffies;
@@ -541,7 +543,9 @@ blk_generic_end_io_acct(struct request_queue *q __attribute__((unused)),
struct gendisk *disk __attribute__((unused)),
int rw __attribute__((unused)), struct bio *bio, unsigned long start_time)
{
-#if defined(HAVE_BIO_IO_ACCT)
+#if defined(HAVE_DISK_IO_ACCT)
+ disk_end_io_acct(disk, bio_op(bio), start_time);
+#elif defined(HAVE_BIO_IO_ACCT)
bio_end_io_acct(bio, start_time);
#elif defined(HAVE_GENERIC_IO_ACCT_3ARG)
generic_end_io_acct(rw, &disk->part0, start_time);