diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-07-03 22:39:47 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-07-03 22:39:47 +0100 |
commit | 7f0ccc917c7abe6223784c703d86cd14755691fb (patch) | |
tree | 8c6793f68896b341e22f33d7e6cef88e481f4a8b /sys-fs/zfs-kmod/files/zfs-8.0.4_5.12_compat_bio_max_segs.patch | |
parent | 9aa80713372911cec499b3adb2cd746790920916 (diff) |
gentoo resync : 03.07.2021
Diffstat (limited to 'sys-fs/zfs-kmod/files/zfs-8.0.4_5.12_compat_bio_max_segs.patch')
-rw-r--r-- | sys-fs/zfs-kmod/files/zfs-8.0.4_5.12_compat_bio_max_segs.patch | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/sys-fs/zfs-kmod/files/zfs-8.0.4_5.12_compat_bio_max_segs.patch b/sys-fs/zfs-kmod/files/zfs-8.0.4_5.12_compat_bio_max_segs.patch deleted file mode 100644 index 33f9a344e2f2..000000000000 --- a/sys-fs/zfs-kmod/files/zfs-8.0.4_5.12_compat_bio_max_segs.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 77352db228c07ce8ba50478b9029820ca69c6c1b Mon Sep 17 00:00:00 2001 -From: Coleman Kane <ckane@colemankane.org> -Date: Sat, 20 Mar 2021 01:33:42 -0400 -Subject: [PATCH] Linux 5.12 update: bio_max_segs() replaces BIO_MAX_PAGES - -The BIO_MAX_PAGES macro is being retired in favor of a bio_max_segs() -function that implements the typical MIN(x,y) logic used throughout the -kernel for bounding the allocation, and also the new implementation is -intended to be signed-safe (which the former was not). - -Reviewed-by: Tony Hutter <hutter2@llnl.gov> -Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> -Signed-off-by: Coleman Kane <ckane@colemankane.org> -Closes #11765 -(cherry picked from commit ffd6978ef59cfe2773e984bf03de2f0b93b03f5c) -Signed-off-by: Jonathon Fernyhough <jonathon@m2x.dev> ---- - config/kernel-bio_max_segs.m4 | 23 +++++++++++++++++++++++ - config/kernel.m4 | 2 ++ - module/os/linux/zfs/vdev_disk.c | 5 +++++ - 3 files changed, 30 insertions(+) - create mode 100644 config/kernel-bio_max_segs.m4 - -diff --git a/config/kernel-bio_max_segs.m4 b/config/kernel-bio_max_segs.m4 -new file mode 100644 -index 00000000000..a90d75455c1 ---- /dev/null -+++ b/config/kernel-bio_max_segs.m4 -@@ -0,0 +1,23 @@ -+dnl # -+dnl # 5.12 API change removes BIO_MAX_PAGES in favor of bio_max_segs() -+dnl # which will handle the logic of setting the upper-bound to a -+dnl # BIO_MAX_PAGES, internally. -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_SRC_BIO_MAX_SEGS], [ -+ ZFS_LINUX_TEST_SRC([bio_max_segs], [ -+ #include <linux/bio.h> -+ ],[ -+ bio_max_segs(1); -+ ]) -+]) -+ -+AC_DEFUN([ZFS_AC_KERNEL_BIO_MAX_SEGS], [ -+ AC_MSG_CHECKING([whether bio_max_segs() exists]) -+ ZFS_LINUX_TEST_RESULT([bio_max_segs], [ -+ AC_MSG_RESULT(yes) -+ -+ AC_DEFINE([HAVE_BIO_MAX_SEGS], 1, [bio_max_segs() is implemented]) -+ ],[ -+ AC_MSG_RESULT(no) -+ ]) -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 51c7fb926ec..b8d53490a4a 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -127,6 +127,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [ - ZFS_AC_KERNEL_SRC_GENERIC_FILLATTR_USERNS - ZFS_AC_KERNEL_SRC_MKNOD - ZFS_AC_KERNEL_SRC_SYMLINK -+ ZFS_AC_KERNEL_SRC_BIO_MAX_SEGS - - AC_MSG_CHECKING([for available kernel interfaces]) - ZFS_LINUX_TEST_COMPILE_ALL([kabi]) -@@ -227,6 +228,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [ - ZFS_AC_KERNEL_GENERIC_FILLATTR_USERNS - ZFS_AC_KERNEL_MKNOD - ZFS_AC_KERNEL_SYMLINK -+ ZFS_AC_KERNEL_BIO_MAX_SEGS - ]) - - dnl # -diff --git a/module/os/linux/zfs/vdev_disk.c b/module/os/linux/zfs/vdev_disk.c -index 08c33313407..aaaf4105979 100644 ---- a/module/os/linux/zfs/vdev_disk.c -+++ b/module/os/linux/zfs/vdev_disk.c -@@ -593,9 +593,14 @@ __vdev_disk_physio(struct block_device *bdev, zio_t *zio, - } - - /* bio_alloc() with __GFP_WAIT never returns NULL */ -+#ifdef HAVE_BIO_MAX_SEGS -+ dr->dr_bio[i] = bio_alloc(GFP_NOIO, bio_max_segs( -+ abd_nr_pages_off(zio->io_abd, bio_size, abd_offset))); -+#else - dr->dr_bio[i] = bio_alloc(GFP_NOIO, - MIN(abd_nr_pages_off(zio->io_abd, bio_size, abd_offset), - BIO_MAX_PAGES)); -+#endif - if (unlikely(dr->dr_bio[i] == NULL)) { - vdev_disk_dio_free(dr); - return (SET_ERROR(ENOMEM)); |