diff options
14 files changed, 12 insertions, 456 deletions
diff --git a/metadata/md5-cache/sys-fs/zfs-2.1.0 b/metadata/md5-cache/sys-fs/zfs-2.1.1 index d6fa38b2..9e733c43 100644 --- a/metadata/md5-cache/sys-fs/zfs-2.1.0 +++ b/metadata/md5-cache/sys-fs/zfs-2.1.1 @@ -1,9 +1,9 @@ DEFINED_PHASES=- -DEPEND=~sys-fs/zfs-utils-2.1.0 ~sys-kernel/zfs-dkms-2.1.0 +DEPEND=~sys-fs/zfs-utils-2.1.1 ~sys-kernel/zfs-dkms-2.1.1 DESCRIPTION=ZFS meta-package (Gentoo compatibility ebuild) EAPI=5 KEYWORDS=amd64 LICENSE=GPL-2 -RDEPEND=~sys-fs/zfs-utils-2.1.0 ~sys-kernel/zfs-dkms-2.1.0 +RDEPEND=~sys-fs/zfs-utils-2.1.1 ~sys-kernel/zfs-dkms-2.1.1 SLOT=0 _md5_=fd9a7a332ff735b0d15efacf4e8ceb45 diff --git a/metadata/md5-cache/sys-fs/zfs-utils-2.1.0-r2 b/metadata/md5-cache/sys-fs/zfs-utils-2.1.1 index 9fb2999a..3a9e6fd2 100644 --- a/metadata/md5-cache/sys-fs/zfs-utils-2.1.0-r2 +++ b/metadata/md5-cache/sys-fs/zfs-utils-2.1.1 @@ -11,6 +11,6 @@ RDEPEND=net-libs/libtirpc sys-apps/util-linux sys-libs/zlib virtual/libudev dev- REQUIRED_USE=|| ( python_targets_python3_8 python_targets_python3_9 ) RESTRICT=test SLOT=0 -SRC_URI=https://github.com/openzfs/zfs-utils/releases/download/zfs-2.1.0/zfs-2.1.0.tar.gz +SRC_URI=https://github.com/openzfs/zfs-utils/releases/download/zfs-2.1.1/zfs-2.1.1.tar.gz _eclasses_=bash-completion-r1 d3a60385655d9b402be765a6de333245 distutils-r1 6088739b8548699015d46289639d660c eapi8-dosym cd7d420bb5be5ee079f27239ce76b8f5 edos2unix 33e347e171066657f91f8b0c72ec8773 eutils dab5d8ec471d025b79c9e6906bcf3bff flag-o-matic 4134b5c0fb719b9161d10bdaba9e09e5 multibuild 05a584848db4901c97fcd94ae7cc3a97 multilib 4b66d835ec72e021e359bb81eacfe988 multiprocessing 61c959fc55c15c00bbb1079d6a71370b pam 41ce39f668e11d31ff4734f3b5794f7d python-r1 e574a3642f886323f18f867ecc4d91c4 python-utils-r1 08d890890f70fe0096093016e55438d5 strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 9ea1c67b6f8315fdc2568abb674519aa udev 0a92682c0f65a60d01453db598fc6490 wrapper 4251d4c84c25f59094fd557e0063a974 -_md5_=175096842f23f059de3f1bf995df90dd +_md5_=6f45ccec7b5025c8939951fea63280d6 diff --git a/metadata/md5-cache/sys-kernel/zfs-dkms-2.1.0-r1 b/metadata/md5-cache/sys-kernel/zfs-dkms-2.1.1 index d3169e7e..e300a8e7 100644 --- a/metadata/md5-cache/sys-kernel/zfs-dkms-2.1.0-r1 +++ b/metadata/md5-cache/sys-kernel/zfs-dkms-2.1.1 @@ -7,6 +7,6 @@ KEYWORDS=amd64 LICENSE=GPL-2 RDEPEND=sys-kernel/dkms SLOT=0 -SRC_URI=https://github.com/zfsonlinux/zfs/releases/download/zfs-2.1.0/zfs-2.1.0.tar.gz +SRC_URI=https://github.com/zfsonlinux/zfs/releases/download/zfs-2.1.1/zfs-2.1.1.tar.gz _eclasses_=edos2unix 33e347e171066657f91f8b0c72ec8773 eutils dab5d8ec471d025b79c9e6906bcf3bff strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 wrapper 4251d4c84c25f59094fd557e0063a974 -_md5_=5ffcef0b9dbfc20608e0604ce0097563 +_md5_=c99b139394da5f09fe55671b0f12322c diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index 18ee3b1c..f5f590e2 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -56,8 +56,8 @@ sys-devel/libtool 2.4.6-r10: A shared library tool for developers sys-fs/cryptsetup 2.3.4-r10: Tool to setup encrypted devices with dm-crypt sys-fs/gocryptfs 2.0.1-r1: Encrypted overlay filesystem written in Go sys-fs/vhba 20190831-r2: Virtual (SCSI) Host Bus Adapter kernel module for the CDEmu suite -sys-fs/zfs 2.1.0: ZFS meta-package (Gentoo compatibility ebuild) -sys-fs/zfs-utils 2.1.0-r2: Userland utilities for ZFS Linux kernel module +sys-fs/zfs 2.1.1: ZFS meta-package (Gentoo compatibility ebuild) +sys-fs/zfs-utils 2.1.1: Userland utilities for ZFS Linux kernel module sys-kernel/bbswitch-dkms 0.8-r1: BBswitch sources for linux sys-kernel/broadcom-sta-dkms 6.30.223.271-r5: Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver source sys-kernel/dkms 2.3-r1: Dynamic Kernel Module Support @@ -75,7 +75,7 @@ sys-kernel/nvidia-drivers-legacy-dkms 390.144-r1: NVIDIA driver sources for linu sys-kernel/rtl8821cu-dkms 5.8.1: Realtek RTL8811CU/RTL8821CU USB Wi-Fi adapter driver for Linux sys-kernel/vhba-dkms 20190831: Virtual (SCSI) Host Bus Adapter kernel module for the CDEmu suite sources sys-kernel/virtualbox-modules-dkms 6.1.18-r1: Kernel Modules source for Virtualbox -sys-kernel/zfs-dkms 2.1.0-r1: ZFS sources for linux +sys-kernel/zfs-dkms 2.1.1: ZFS sources for linux sys-libs/binutils-libs 2.35.2-r10: Core binutils libraries (libbfd, libopcodes, libiberty) for external packages sys-libs/glibc 2.33-r10: GNU libc C library sys-power/radeon-profile 20200824-r10: Read current clocks of ATi/AMD Radeon cards diff --git a/sys-fs/zfs-utils/Manifest b/sys-fs/zfs-utils/Manifest index 38a12b59..e11bc403 100644 --- a/sys-fs/zfs-utils/Manifest +++ b/sys-fs/zfs-utils/Manifest @@ -1 +1 @@ -DIST zfs-2.1.0.tar.gz 34810470 BLAKE2B f7cc1cde711c255bacb000207b8e9a594105d18601a503d75a2a3055ed29ca941e148492fe52809f81a250848cfb5868b3d1c42860464a3d7d744a416db08929 SHA512 2121b90a1d4d92353801c48a2e34e2dd42bd295dacc3c30aa77cde967a1326e17c983bdd6905552421df0a652c09e84b3d4d2ba01001e053b8afb12e189c046f +DIST zfs-2.1.1.tar.gz 34836374 BLAKE2B 09ee6bd30e8266342bd975454086049c3fd9142e7dacfe52166575c20e3c92688f9b457d75b2a2068fc281e65f78e1d47450545504cdf8bc31e23663545d7800 SHA512 b69ce764a9f7438ec2c90f86be02abfd684c67cd38de876374e3e6f4b2f82a75d86fa70205def2ba454ad27e52ec8d955ebc4ba456e91d397129a54ea849c19c diff --git a/sys-fs/zfs-utils/files/1c24bf966c373009f2be77438e8696aabf50a7e7.diff b/sys-fs/zfs-utils/files/1c24bf966c373009f2be77438e8696aabf50a7e7.diff deleted file mode 100644 index e53bfb1c..00000000 --- a/sys-fs/zfs-utils/files/1c24bf966c373009f2be77438e8696aabf50a7e7.diff +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/config/kernel-vfs-set_page_dirty.m4 b/config/kernel-vfs-set_page_dirty.m4 -new file mode 100644 -index 00000000000..a9d252e4e01 ---- /dev/null -+++ b/config/kernel-vfs-set_page_dirty.m4 -@@ -0,0 +1,34 @@ -+dnl # -+dnl # Linux 5.14 adds a change to require set_page_dirty to be manually -+dnl # wired up in struct address_space_operations. Determine if this needs -+dnl # to be done. This patch set also introduced __set_page_dirty_nobuffers -+dnl # declaration in linux/pagemap.h, so these tests look for the presence -+dnl # of that function to tell the compiler to assign set_page_dirty in -+dnl # module/os/linux/zfs/zpl_file.c -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS], [ -+ ZFS_LINUX_TEST_SRC([vfs_has_set_page_dirty_nobuffers], [ -+ #include <linux/pagemap.h> -+ #include <linux/fs.h> -+ -+ static const struct address_space_operations -+ aops __attribute__ ((unused)) = { -+ .set_page_dirty = __set_page_dirty_nobuffers, -+ }; -+ ],[]) -+]) -+ -+AC_DEFUN([ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS], [ -+ dnl # -+ dnl # Linux 5.14 change requires set_page_dirty() to be assigned -+ dnl # in address_space_operations() -+ dnl # -+ AC_MSG_CHECKING([__set_page_dirty_nobuffers exists]) -+ ZFS_LINUX_TEST_RESULT([vfs_has_set_page_dirty_nobuffers], [ -+ AC_MSG_RESULT([yes]) -+ AC_DEFINE(HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS, 1, -+ [__set_page_dirty_nobuffers exists]) -+ ],[ -+ AC_MSG_RESULT([no]) -+ ]) -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 7196e66ca28..5ea2286dbcc 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -132,6 +132,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [ - ZFS_AC_KERNEL_SRC_SIGNAL_STOP - ZFS_AC_KERNEL_SRC_SIGINFO - ZFS_AC_KERNEL_SRC_SET_SPECIAL_STATE -+ ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS - - AC_MSG_CHECKING([for available kernel interfaces]) - ZFS_LINUX_TEST_COMPILE_ALL([kabi]) -@@ -237,6 +238,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [ - ZFS_AC_KERNEL_SIGNAL_STOP - ZFS_AC_KERNEL_SIGINFO - ZFS_AC_KERNEL_SET_SPECIAL_STATE -+ ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS - ]) - - dnl # -diff --git a/module/os/linux/zfs/zpl_file.c b/module/os/linux/zfs/zpl_file.c -index 0319148b983..63002fe3b93 100644 ---- a/module/os/linux/zfs/zpl_file.c -+++ b/module/os/linux/zfs/zpl_file.c -@@ -33,6 +33,9 @@ - #include <sys/zfs_vfsops.h> - #include <sys/zfs_vnops.h> - #include <sys/zfs_project.h> -+#ifdef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS -+#include <linux/pagemap.h> -+#endif - - /* - * When using fallocate(2) to preallocate space, inflate the requested -@@ -1018,6 +1021,9 @@ const struct address_space_operations zpl_address_space_operations = { - .writepage = zpl_writepage, - .writepages = zpl_writepages, - .direct_IO = zpl_direct_IO, -+#ifdef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS -+ .set_page_dirty = __set_page_dirty_nobuffers, -+#endif - }; - - const struct file_operations zpl_file_operations = { diff --git a/sys-fs/zfs-utils/files/eb17f92e1edabcde442e5fbdff4525054be8595.diff b/sys-fs/zfs-utils/files/eb17f92e1edabcde442e5fbdff4525054be8595.diff deleted file mode 100644 index 1e72ebaf..00000000 --- a/sys-fs/zfs-utils/files/eb17f92e1edabcde442e5fbdff4525054be8595.diff +++ /dev/null @@ -1,133 +0,0 @@ -diff --git a/config/kernel-make-request-fn.m4 b/config/kernel-make-request-fn.m4 -index 290ef6b8da7..86b202a7a27 100644 ---- a/config/kernel-make-request-fn.m4 -+++ b/config/kernel-make-request-fn.m4 -@@ -42,6 +42,13 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_MAKE_REQUEST_FN], [ - struct block_device_operations o; - o.submit_bio = NULL; - ]) -+ -+ ZFS_LINUX_TEST_SRC([blk_alloc_disk], [ -+ #include <linux/blkdev.h> -+ ],[ -+ struct gendisk *disk __attribute__ ((unused)); -+ disk = blk_alloc_disk(NUMA_NO_NODE); -+ ]) - ]) - - AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [ -@@ -56,6 +63,19 @@ AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [ - - AC_DEFINE(HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS, 1, - [submit_bio is member of struct block_device_operations]) -+ -+ dnl # -+ dnl # Linux 5.14 API Change: -+ dnl # blk_alloc_queue() + alloc_disk() combo replaced by -+ dnl # a single call to blk_alloc_disk(). -+ dnl # -+ AC_MSG_CHECKING([whether blk_alloc_disk() exists]) -+ ZFS_LINUX_TEST_RESULT([blk_alloc_disk], [ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE([HAVE_BLK_ALLOC_DISK], 1, [blk_alloc_disk() exists]) -+ ], [ -+ AC_MSG_RESULT(no) -+ ]) - ],[ - AC_MSG_RESULT(no) - -diff --git a/module/os/linux/zfs/zvol_os.c b/module/os/linux/zfs/zvol_os.c -index 741979f11af..8b29d73a3e0 100644 ---- a/module/os/linux/zfs/zvol_os.c -+++ b/module/os/linux/zfs/zvol_os.c -@@ -762,7 +762,7 @@ static struct block_device_operations zvol_ops = { - .getgeo = zvol_getgeo, - .owner = THIS_MODULE, - #ifdef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS -- .submit_bio = zvol_submit_bio, -+ .submit_bio = zvol_submit_bio, - #endif - }; - -@@ -795,13 +795,40 @@ zvol_alloc(dev_t dev, const char *name) - mutex_init(&zv->zv_state_lock, NULL, MUTEX_DEFAULT, NULL); - - #ifdef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS -+#ifdef HAVE_BLK_ALLOC_DISK -+ zso->zvo_disk = blk_alloc_disk(NUMA_NO_NODE); -+ if (zso->zvo_disk == NULL) -+ goto out_kmem; -+ -+ zso->zvo_disk->minors = ZVOL_MINORS; -+ zso->zvo_queue = zso->zvo_disk->queue; -+#else - zso->zvo_queue = blk_alloc_queue(NUMA_NO_NODE); -+ if (zso->zvo_queue == NULL) -+ goto out_kmem; -+ -+ zso->zvo_disk = alloc_disk(ZVOL_MINORS); -+ if (zso->zvo_disk == NULL) { -+ blk_cleanup_queue(zso->zvo_queue); -+ goto out_kmem; -+ } -+ -+ zso->zvo_disk->queue = zso->zvo_queue; -+#endif /* HAVE_BLK_ALLOC_DISK */ - #else - zso->zvo_queue = blk_generic_alloc_queue(zvol_request, NUMA_NO_NODE); --#endif - if (zso->zvo_queue == NULL) - goto out_kmem; - -+ zso->zvo_disk = alloc_disk(ZVOL_MINORS); -+ if (zso->zvo_disk == NULL) { -+ blk_cleanup_queue(zso->zvo_queue); -+ goto out_kmem; -+ } -+ -+ zso->zvo_disk->queue = zso->zvo_queue; -+#endif /* HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */ -+ - blk_queue_set_write_cache(zso->zvo_queue, B_TRUE, B_TRUE); - - /* Limit read-ahead to a single page to prevent over-prefetching. */ -@@ -810,10 +837,6 @@ zvol_alloc(dev_t dev, const char *name) - /* Disable write merging in favor of the ZIO pipeline. */ - blk_queue_flag_set(QUEUE_FLAG_NOMERGES, zso->zvo_queue); - -- zso->zvo_disk = alloc_disk(ZVOL_MINORS); -- if (zso->zvo_disk == NULL) -- goto out_queue; -- - zso->zvo_queue->queuedata = zv; - zso->zvo_dev = dev; - zv->zv_open_count = 0; -@@ -844,14 +867,11 @@ zvol_alloc(dev_t dev, const char *name) - zso->zvo_disk->first_minor = (dev & MINORMASK); - zso->zvo_disk->fops = &zvol_ops; - zso->zvo_disk->private_data = zv; -- zso->zvo_disk->queue = zso->zvo_queue; - snprintf(zso->zvo_disk->disk_name, DISK_NAME_LEN, "%s%d", - ZVOL_DEV_NAME, (dev & MINORMASK)); - - return (zv); - --out_queue: -- blk_cleanup_queue(zso->zvo_queue); - out_kmem: - kmem_free(zso, sizeof (struct zvol_state_os)); - kmem_free(zv, sizeof (zvol_state_t)); -@@ -882,8 +902,13 @@ zvol_free(zvol_state_t *zv) - zfs_rangelock_fini(&zv->zv_rangelock); - - del_gendisk(zv->zv_zso->zvo_disk); -+#if defined(HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS) && \ -+ defined(HAVE_BLK_ALLOC_DISK) -+ blk_cleanup_disk(zv->zv_zso->zvo_disk); -+#else - blk_cleanup_queue(zv->zv_zso->zvo_queue); - put_disk(zv->zv_zso->zvo_disk); -+#endif - - ida_simple_remove(&zvol_ida, - MINOR(zv->zv_zso->zvo_dev) >> ZVOL_MINOR_BITS); diff --git a/sys-fs/zfs-utils/zfs-utils-2.1.0-r2.ebuild b/sys-fs/zfs-utils/zfs-utils-2.1.1.ebuild index 690d7aaa..368a1963 100644 --- a/sys-fs/zfs-utils/zfs-utils-2.1.0-r2.ebuild +++ b/sys-fs/zfs-utils/zfs-utils-2.1.1.ebuild @@ -60,11 +60,6 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="test" -PATCHES=( - "${FILESDIR}"/eb17f92e1edabcde442e5fbdff4525054be8595.diff - "${FILESDIR}"/1c24bf966c373009f2be77438e8696aabf50a7e7.diff -) - src_prepare() { default diff --git a/sys-fs/zfs/zfs-2.1.0.ebuild b/sys-fs/zfs/zfs-2.1.1.ebuild index c91d103c..c91d103c 100644 --- a/sys-fs/zfs/zfs-2.1.0.ebuild +++ b/sys-fs/zfs/zfs-2.1.1.ebuild diff --git a/sys-kernel/zfs-dkms/Manifest b/sys-kernel/zfs-dkms/Manifest index 38a12b59..e11bc403 100644 --- a/sys-kernel/zfs-dkms/Manifest +++ b/sys-kernel/zfs-dkms/Manifest @@ -1 +1 @@ -DIST zfs-2.1.0.tar.gz 34810470 BLAKE2B f7cc1cde711c255bacb000207b8e9a594105d18601a503d75a2a3055ed29ca941e148492fe52809f81a250848cfb5868b3d1c42860464a3d7d744a416db08929 SHA512 2121b90a1d4d92353801c48a2e34e2dd42bd295dacc3c30aa77cde967a1326e17c983bdd6905552421df0a652c09e84b3d4d2ba01001e053b8afb12e189c046f +DIST zfs-2.1.1.tar.gz 34836374 BLAKE2B 09ee6bd30e8266342bd975454086049c3fd9142e7dacfe52166575c20e3c92688f9b457d75b2a2068fc281e65f78e1d47450545504cdf8bc31e23663545d7800 SHA512 b69ce764a9f7438ec2c90f86be02abfd684c67cd38de876374e3e6f4b2f82a75d86fa70205def2ba454ad27e52ec8d955ebc4ba456e91d397129a54ea849c19c diff --git a/sys-kernel/zfs-dkms/files/1c24bf966c373009f2be77438e8696aabf50a7e7.diff b/sys-kernel/zfs-dkms/files/1c24bf966c373009f2be77438e8696aabf50a7e7.diff deleted file mode 100644 index e53bfb1c..00000000 --- a/sys-kernel/zfs-dkms/files/1c24bf966c373009f2be77438e8696aabf50a7e7.diff +++ /dev/null @@ -1,84 +0,0 @@ -diff --git a/config/kernel-vfs-set_page_dirty.m4 b/config/kernel-vfs-set_page_dirty.m4 -new file mode 100644 -index 00000000000..a9d252e4e01 ---- /dev/null -+++ b/config/kernel-vfs-set_page_dirty.m4 -@@ -0,0 +1,34 @@ -+dnl # -+dnl # Linux 5.14 adds a change to require set_page_dirty to be manually -+dnl # wired up in struct address_space_operations. Determine if this needs -+dnl # to be done. This patch set also introduced __set_page_dirty_nobuffers -+dnl # declaration in linux/pagemap.h, so these tests look for the presence -+dnl # of that function to tell the compiler to assign set_page_dirty in -+dnl # module/os/linux/zfs/zpl_file.c -+dnl # -+AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS], [ -+ ZFS_LINUX_TEST_SRC([vfs_has_set_page_dirty_nobuffers], [ -+ #include <linux/pagemap.h> -+ #include <linux/fs.h> -+ -+ static const struct address_space_operations -+ aops __attribute__ ((unused)) = { -+ .set_page_dirty = __set_page_dirty_nobuffers, -+ }; -+ ],[]) -+]) -+ -+AC_DEFUN([ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS], [ -+ dnl # -+ dnl # Linux 5.14 change requires set_page_dirty() to be assigned -+ dnl # in address_space_operations() -+ dnl # -+ AC_MSG_CHECKING([__set_page_dirty_nobuffers exists]) -+ ZFS_LINUX_TEST_RESULT([vfs_has_set_page_dirty_nobuffers], [ -+ AC_MSG_RESULT([yes]) -+ AC_DEFINE(HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS, 1, -+ [__set_page_dirty_nobuffers exists]) -+ ],[ -+ AC_MSG_RESULT([no]) -+ ]) -+]) -diff --git a/config/kernel.m4 b/config/kernel.m4 -index 7196e66ca28..5ea2286dbcc 100644 ---- a/config/kernel.m4 -+++ b/config/kernel.m4 -@@ -132,6 +132,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [ - ZFS_AC_KERNEL_SRC_SIGNAL_STOP - ZFS_AC_KERNEL_SRC_SIGINFO - ZFS_AC_KERNEL_SRC_SET_SPECIAL_STATE -+ ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS - - AC_MSG_CHECKING([for available kernel interfaces]) - ZFS_LINUX_TEST_COMPILE_ALL([kabi]) -@@ -237,6 +238,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [ - ZFS_AC_KERNEL_SIGNAL_STOP - ZFS_AC_KERNEL_SIGINFO - ZFS_AC_KERNEL_SET_SPECIAL_STATE -+ ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS - ]) - - dnl # -diff --git a/module/os/linux/zfs/zpl_file.c b/module/os/linux/zfs/zpl_file.c -index 0319148b983..63002fe3b93 100644 ---- a/module/os/linux/zfs/zpl_file.c -+++ b/module/os/linux/zfs/zpl_file.c -@@ -33,6 +33,9 @@ - #include <sys/zfs_vfsops.h> - #include <sys/zfs_vnops.h> - #include <sys/zfs_project.h> -+#ifdef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS -+#include <linux/pagemap.h> -+#endif - - /* - * When using fallocate(2) to preallocate space, inflate the requested -@@ -1018,6 +1021,9 @@ const struct address_space_operations zpl_address_space_operations = { - .writepage = zpl_writepage, - .writepages = zpl_writepages, - .direct_IO = zpl_direct_IO, -+#ifdef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS -+ .set_page_dirty = __set_page_dirty_nobuffers, -+#endif - }; - - const struct file_operations zpl_file_operations = { diff --git a/sys-kernel/zfs-dkms/files/dkms.conf b/sys-kernel/zfs-dkms/files/dkms.conf index 83285524..5b55f58f 100644 --- a/sys-kernel/zfs-dkms/files/dkms.conf +++ b/sys-kernel/zfs-dkms/files/dkms.conf @@ -1,5 +1,5 @@ PACKAGE_NAME="zfs-dkms" -PACKAGE_VERSION="2.1.0" +PACKAGE_VERSION="2.1.1" PACKAGE_CONFIG="/etc/sysconfig/zfs" NO_WEAK_MODULES="yes" PRE_BUILD="configure diff --git a/sys-kernel/zfs-dkms/files/eb17f92e1edabcde442e5fbdff4525054be8595.diff b/sys-kernel/zfs-dkms/files/eb17f92e1edabcde442e5fbdff4525054be8595.diff deleted file mode 100644 index 1e72ebaf..00000000 --- a/sys-kernel/zfs-dkms/files/eb17f92e1edabcde442e5fbdff4525054be8595.diff +++ /dev/null @@ -1,133 +0,0 @@ -diff --git a/config/kernel-make-request-fn.m4 b/config/kernel-make-request-fn.m4 -index 290ef6b8da7..86b202a7a27 100644 ---- a/config/kernel-make-request-fn.m4 -+++ b/config/kernel-make-request-fn.m4 -@@ -42,6 +42,13 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_MAKE_REQUEST_FN], [ - struct block_device_operations o; - o.submit_bio = NULL; - ]) -+ -+ ZFS_LINUX_TEST_SRC([blk_alloc_disk], [ -+ #include <linux/blkdev.h> -+ ],[ -+ struct gendisk *disk __attribute__ ((unused)); -+ disk = blk_alloc_disk(NUMA_NO_NODE); -+ ]) - ]) - - AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [ -@@ -56,6 +63,19 @@ AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [ - - AC_DEFINE(HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS, 1, - [submit_bio is member of struct block_device_operations]) -+ -+ dnl # -+ dnl # Linux 5.14 API Change: -+ dnl # blk_alloc_queue() + alloc_disk() combo replaced by -+ dnl # a single call to blk_alloc_disk(). -+ dnl # -+ AC_MSG_CHECKING([whether blk_alloc_disk() exists]) -+ ZFS_LINUX_TEST_RESULT([blk_alloc_disk], [ -+ AC_MSG_RESULT(yes) -+ AC_DEFINE([HAVE_BLK_ALLOC_DISK], 1, [blk_alloc_disk() exists]) -+ ], [ -+ AC_MSG_RESULT(no) -+ ]) - ],[ - AC_MSG_RESULT(no) - -diff --git a/module/os/linux/zfs/zvol_os.c b/module/os/linux/zfs/zvol_os.c -index 741979f11af..8b29d73a3e0 100644 ---- a/module/os/linux/zfs/zvol_os.c -+++ b/module/os/linux/zfs/zvol_os.c -@@ -762,7 +762,7 @@ static struct block_device_operations zvol_ops = { - .getgeo = zvol_getgeo, - .owner = THIS_MODULE, - #ifdef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS -- .submit_bio = zvol_submit_bio, -+ .submit_bio = zvol_submit_bio, - #endif - }; - -@@ -795,13 +795,40 @@ zvol_alloc(dev_t dev, const char *name) - mutex_init(&zv->zv_state_lock, NULL, MUTEX_DEFAULT, NULL); - - #ifdef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS -+#ifdef HAVE_BLK_ALLOC_DISK -+ zso->zvo_disk = blk_alloc_disk(NUMA_NO_NODE); -+ if (zso->zvo_disk == NULL) -+ goto out_kmem; -+ -+ zso->zvo_disk->minors = ZVOL_MINORS; -+ zso->zvo_queue = zso->zvo_disk->queue; -+#else - zso->zvo_queue = blk_alloc_queue(NUMA_NO_NODE); -+ if (zso->zvo_queue == NULL) -+ goto out_kmem; -+ -+ zso->zvo_disk = alloc_disk(ZVOL_MINORS); -+ if (zso->zvo_disk == NULL) { -+ blk_cleanup_queue(zso->zvo_queue); -+ goto out_kmem; -+ } -+ -+ zso->zvo_disk->queue = zso->zvo_queue; -+#endif /* HAVE_BLK_ALLOC_DISK */ - #else - zso->zvo_queue = blk_generic_alloc_queue(zvol_request, NUMA_NO_NODE); --#endif - if (zso->zvo_queue == NULL) - goto out_kmem; - -+ zso->zvo_disk = alloc_disk(ZVOL_MINORS); -+ if (zso->zvo_disk == NULL) { -+ blk_cleanup_queue(zso->zvo_queue); -+ goto out_kmem; -+ } -+ -+ zso->zvo_disk->queue = zso->zvo_queue; -+#endif /* HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */ -+ - blk_queue_set_write_cache(zso->zvo_queue, B_TRUE, B_TRUE); - - /* Limit read-ahead to a single page to prevent over-prefetching. */ -@@ -810,10 +837,6 @@ zvol_alloc(dev_t dev, const char *name) - /* Disable write merging in favor of the ZIO pipeline. */ - blk_queue_flag_set(QUEUE_FLAG_NOMERGES, zso->zvo_queue); - -- zso->zvo_disk = alloc_disk(ZVOL_MINORS); -- if (zso->zvo_disk == NULL) -- goto out_queue; -- - zso->zvo_queue->queuedata = zv; - zso->zvo_dev = dev; - zv->zv_open_count = 0; -@@ -844,14 +867,11 @@ zvol_alloc(dev_t dev, const char *name) - zso->zvo_disk->first_minor = (dev & MINORMASK); - zso->zvo_disk->fops = &zvol_ops; - zso->zvo_disk->private_data = zv; -- zso->zvo_disk->queue = zso->zvo_queue; - snprintf(zso->zvo_disk->disk_name, DISK_NAME_LEN, "%s%d", - ZVOL_DEV_NAME, (dev & MINORMASK)); - - return (zv); - --out_queue: -- blk_cleanup_queue(zso->zvo_queue); - out_kmem: - kmem_free(zso, sizeof (struct zvol_state_os)); - kmem_free(zv, sizeof (zvol_state_t)); -@@ -882,8 +902,13 @@ zvol_free(zvol_state_t *zv) - zfs_rangelock_fini(&zv->zv_rangelock); - - del_gendisk(zv->zv_zso->zvo_disk); -+#if defined(HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS) && \ -+ defined(HAVE_BLK_ALLOC_DISK) -+ blk_cleanup_disk(zv->zv_zso->zvo_disk); -+#else - blk_cleanup_queue(zv->zv_zso->zvo_queue); - put_disk(zv->zv_zso->zvo_disk); -+#endif - - ida_simple_remove(&zvol_ida, - MINOR(zv->zv_zso->zvo_dev) >> ZVOL_MINOR_BITS); diff --git a/sys-kernel/zfs-dkms/zfs-dkms-2.1.0-r1.ebuild b/sys-kernel/zfs-dkms/zfs-dkms-2.1.1.ebuild index f4dfd6c1..cec96ca3 100644 --- a/sys-kernel/zfs-dkms/zfs-dkms-2.1.0-r1.ebuild +++ b/sys-kernel/zfs-dkms/zfs-dkms-2.1.1.ebuild @@ -20,11 +20,6 @@ IUSE="" DEPEND="sys-kernel/dkms" RDEPEND="${DEPEND}" -PATCHES=( - "${FILESDIR}"/eb17f92e1edabcde442e5fbdff4525054be8595.diff - "${FILESDIR}"/1c24bf966c373009f2be77438e8696aabf50a7e7.diff -) - S="${WORKDIR}/${MY_P}" src_configure() { |