Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 859043 Details for
Bug 903117
Linux kernel 6.2.8 breaks sys-fs/zfs-kmod-2.1.9
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
All-in-one version of the previously patches
bugfix-903117-linux-6.2.8.patch (text/plain), 6.30 KB, created by
Adrien Dessemond
on 2023-03-26 14:49:56 UTC
(
hide
)
Description:
All-in-one version of the previously patches
Filename:
MIME Type:
Creator:
Adrien Dessemond
Created:
2023-03-26 14:49:56 UTC
Size:
6.30 KB
patch
obsolete
>--- a/config/kernel-generic_io_acct.m4 2023-03-26 10:00:39.867785447 -0400 >+++ b/config/kernel-generic_io_acct.m4 2023-03-26 10:00:52.934452273 -0400 >@@ -2,7 +2,20 @@ > dnl # Check for generic io accounting interface. > dnl # > AC_DEFUN([ZFS_AC_KERNEL_SRC_GENERIC_IO_ACCT], [ >- ZFS_LINUX_TEST_SRC([bdev_io_acct], [ >+ ZFS_LINUX_TEST_SRC([bdev_io_acct_63], [ >+ #include <linux/blkdev.h> >+ ], [ >+ struct block_device *bdev = NULL; >+ struct bio *bio = NULL; >+ unsigned long passed_time = 0; >+ unsigned long start_time; >+ >+ start_time = bdev_start_io_acct(bdev, bio_op(bio), >+ passed_time); >+ bdev_end_io_acct(bdev, bio_op(bio), bio_sectors(bio), start_time); >+ ]) >+ >+ ZFS_LINUX_TEST_SRC([bdev_io_acct_old], [ > #include <linux/blkdev.h> > ], [ > struct block_device *bdev = NULL; >@@ -63,74 +76,85 @@ > > AC_DEFUN([ZFS_AC_KERNEL_GENERIC_IO_ACCT], [ > dnl # >- dnl # 5.19 API, >+ dnl # Linux 6.3, and then backports thereof, changed >+ dnl # the signatures on bdev_start_io_acct/bdev_end_io_acct > dnl # >- dnl # disk_start_io_acct() and disk_end_io_acct() have been replaced by >- dnl # bdev_start_io_acct() and bdev_end_io_acct(). >- dnl # >- AC_MSG_CHECKING([whether generic bdev_*_io_acct() are available]) >- ZFS_LINUX_TEST_RESULT([bdev_io_acct], [ >+ AC_MSG_CHECKING([whether 6.3+ bdev_*_io_acct() are available]) >+ ZFS_LINUX_TEST_RESULT([bdev_io_acct_63], [ > AC_MSG_RESULT(yes) >- AC_DEFINE(HAVE_BDEV_IO_ACCT, 1, [bdev_*_io_acct() available]) >+ AC_DEFINE(HAVE_BDEV_IO_ACCT_63, 1, [bdev_*_io_acct() available]) > ], [ > AC_MSG_RESULT(no) > > dnl # >- dnl # 5.12 API, >+ dnl # 5.19 API, > dnl # >- dnl # bio_start_io_acct() and bio_end_io_acct() became GPL-exported >- dnl # so use disk_start_io_acct() and disk_end_io_acct() instead >+ dnl # disk_start_io_acct() and disk_end_io_acct() have been replaced by >+ dnl # bdev_start_io_acct() and bdev_end_io_acct(). > dnl # >- AC_MSG_CHECKING([whether generic disk_*_io_acct() are available]) >- ZFS_LINUX_TEST_RESULT([disk_io_acct], [ >+ AC_MSG_CHECKING([whether pre-6.3 bdev_*_io_acct() are available]) >+ ZFS_LINUX_TEST_RESULT([bdev_io_acct_old], [ > AC_MSG_RESULT(yes) >- AC_DEFINE(HAVE_DISK_IO_ACCT, 1, [disk_*_io_acct() available]) >+ AC_DEFINE(HAVE_BDEV_IO_ACCT_OLD, 1, [bdev_*_io_acct() available]) > ], [ > AC_MSG_RESULT(no) >- > dnl # >- dnl # 5.7 API, >+ dnl # 5.12 API, > dnl # >- dnl # Added bio_start_io_acct() and bio_end_io_acct() helpers. >+ dnl # bio_start_io_acct() and bio_end_io_acct() became GPL-exported >+ dnl # so use disk_start_io_acct() and disk_end_io_acct() instead > dnl # >- AC_MSG_CHECKING([whether generic bio_*_io_acct() are available]) >- ZFS_LINUX_TEST_RESULT([bio_io_acct], [ >+ AC_MSG_CHECKING([whether generic disk_*_io_acct() are available]) >+ ZFS_LINUX_TEST_RESULT([disk_io_acct], [ > AC_MSG_RESULT(yes) >- AC_DEFINE(HAVE_BIO_IO_ACCT, 1, [bio_*_io_acct() available]) >+ AC_DEFINE(HAVE_DISK_IO_ACCT, 1, [disk_*_io_acct() available]) > ], [ > AC_MSG_RESULT(no) > > dnl # >- dnl # 4.14 API, >+ dnl # 5.7 API, > dnl # >- dnl # generic_start_io_acct/generic_end_io_acct now require >- dnl # request_queue to be provided. No functional changes, >- dnl # but preparation for inflight accounting. >+ dnl # Added bio_start_io_acct() and bio_end_io_acct() helpers. > dnl # >- AC_MSG_CHECKING([whether generic_*_io_acct wants 4 args]) >- ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_4args], >- [generic_start_io_acct], [block/bio.c], [ >+ AC_MSG_CHECKING([whether generic bio_*_io_acct() are available]) >+ ZFS_LINUX_TEST_RESULT([bio_io_acct], [ > AC_MSG_RESULT(yes) >- AC_DEFINE(HAVE_GENERIC_IO_ACCT_4ARG, 1, >- [generic_*_io_acct() 4 arg available]) >+ AC_DEFINE(HAVE_BIO_IO_ACCT, 1, [bio_*_io_acct() available]) > ], [ > AC_MSG_RESULT(no) > > dnl # >- dnl # 3.19 API addition >+ dnl # 4.14 API, > dnl # >- dnl # torvalds/linux@394ffa50 allows us to increment >- dnl # iostat counters without generic_make_request(). >+ dnl # generic_start_io_acct/generic_end_io_acct now require >+ dnl # request_queue to be provided. No functional changes, >+ dnl # but preparation for inflight accounting. > dnl # >- AC_MSG_CHECKING( >- [whether generic_*_io_acct wants 3 args]) >- ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_3args], >+ AC_MSG_CHECKING([whether generic_*_io_acct wants 4 args]) >+ ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_4args], > [generic_start_io_acct], [block/bio.c], [ > AC_MSG_RESULT(yes) >- AC_DEFINE(HAVE_GENERIC_IO_ACCT_3ARG, 1, >- [generic_*_io_acct() 3 arg available]) >+ AC_DEFINE(HAVE_GENERIC_IO_ACCT_4ARG, 1, >+ [generic_*_io_acct() 4 arg available]) > ], [ > AC_MSG_RESULT(no) >+ >+ dnl # >+ dnl # 3.19 API addition >+ dnl # >+ dnl # torvalds/linux@394ffa50 allows us to increment >+ dnl # iostat counters without generic_make_request(). >+ dnl # >+ AC_MSG_CHECKING( >+ [whether generic_*_io_acct wants 3 args]) >+ ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_3args], >+ [generic_start_io_acct], [block/bio.c], [ >+ AC_MSG_RESULT(yes) >+ AC_DEFINE(HAVE_GENERIC_IO_ACCT_3ARG, 1, >+ [generic_*_io_acct() 3 arg available]) >+ ], [ >+ AC_MSG_RESULT(no) >+ ]) > ]) > ]) > ]) > > >--- a/include/os/linux/kernel/linux/blkdev_compat.h 2023-01-25 14:11:42.214766890 -0500 >+++ b/include/os/linux/kernel/linux/blkdev_compat.h 2023-03-26 10:06:20.204456348 -0400 >@@ -555,7 +555,10 @@ > struct gendisk *disk __attribute__((unused)), > int rw __attribute__((unused)), struct bio *bio) > { >-#if defined(HAVE_BDEV_IO_ACCT) >+#if defined(HAVE_BDEV_IO_ACCT_63) >+ return (bdev_start_io_acct(bio->bi_bdev, bio_op(bio), >+ jiffies)); >+#elif defined(HAVE_BDEV_IO_ACCT_OLD) > return (bdev_start_io_acct(bio->bi_bdev, bio_sectors(bio), > bio_op(bio), jiffies)); > #elif defined(HAVE_DISK_IO_ACCT) >@@ -581,7 +584,10 @@ > struct gendisk *disk __attribute__((unused)), > int rw __attribute__((unused)), struct bio *bio, unsigned long start_time) > { >-#if defined(HAVE_BDEV_IO_ACCT) >+#if defined(HAVE_BDEV_IO_ACCT_63) >+ bdev_end_io_acct(bio->bi_bdev, bio_op(bio), bio_sectors(bio), >+ start_time); >+#elif defined(HAVE_BDEV_IO_ACCT_OLD) > bdev_end_io_acct(bio->bi_bdev, bio_op(bio), start_time); > #elif defined(HAVE_DISK_IO_ACCT) > disk_end_io_acct(disk, bio_op(bio), start_time);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 903117
:
859039
|
859041
| 859043