[packages/zfs] - up to 2.1.0

baggins baggins at pld-linux.org
Tue Sep 7 21:24:33 CEST 2021


commit bed78fc0e1d5155026a431e4ecc324e862780600
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Tue Sep 7 21:24:19 2021 +0200

    - up to 2.1.0

 kernel-5.14.patch | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 zfs.spec          |  27 ++++++----
 2 files changed, 172 insertions(+), 11 deletions(-)
---
diff --git a/zfs.spec b/zfs.spec
index 18d0a01..e963cc8 100644
--- a/zfs.spec
+++ b/zfs.spec
@@ -29,14 +29,15 @@ exit 1
 Summary:	Native Linux port of the ZFS filesystem
 Summary(pl.UTF-8):	Natywny linuksowy port systemu plików ZFS
 Name:		%{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
-Version:	2.0.5
+Version:	2.1.0
 Release:	%{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
 License:	CDDL
 Group:		Applications/System
 Source0:	https://github.com/openzfs/zfs/releases/download/zfs-%{version}/%{pname}-%{version}.tar.gz
-# Source0-md5:	66d71cfbc1f23d90d6d37976c6dd3938
+# Source0-md5:	4520749a47d66a3e0b83d7b82a8c7e29
 Patch0:		initdir.patch
 Patch1:		am.patch
+Patch2:		kernel-5.14.patch
 URL:		https://zfsonlinux.org/
 BuildRequires:	autoconf >= 2.50
 BuildRequires:	automake
@@ -285,6 +286,7 @@ p=`pwd`\
 %setup -q -n %{pname}-%{version}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\1,' \
       cmd/arc_summary/arc_summary2
@@ -457,15 +459,20 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libexecdir}/zfs/zpool.d/*
 %dir %{_datadir}/zfs
 %attr(755,root,root) %{_datadir}/zfs/*.sh
+%attr(755,root,root) %{_libexecdir}/zfs/zpool_influxdb
+%{_datadir}/zfs/compatibility.d
 %{_mandir}/man1/arcstat.1*
 %{_mandir}/man1/zhack.1*
 %{_mandir}/man1/ztest.1*
 %{_mandir}/man1/zvol_wait.1*
-%{_mandir}/man5/spl-module-parameters.5*
+%{_mandir}/man4/spl.4*
+%{_mandir}/man4/zfs.4*
 %{_mandir}/man5/vdev_id.conf.5*
-%{_mandir}/man5/zfs-events.5*
-%{_mandir}/man5/zfs-module-parameters.5*
-%{_mandir}/man5/zpool-features.5*
+%{_mandir}/man7/zfsconcepts.7*
+%{_mandir}/man7/zfsprops.7*
+%{_mandir}/man7/zpool-features.7*
+%{_mandir}/man7/zpoolconcepts.7*
+%{_mandir}/man7/zpoolprops.7*
 %{_mandir}/man8/fsck.zfs.8*
 %{_mandir}/man8/mount.zfs.8*
 %{_mandir}/man8/vdev_id.8*
@@ -510,8 +517,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man8/zfs-userspace.8*
 %{_mandir}/man8/zfs-wait.8*
 %{_mandir}/man8/zfs_ids_to_path.8*
-%{_mandir}/man8/zfsconcepts.8*
-%{_mandir}/man8/zfsprops.8*
 %{_mandir}/man8/zgenhostid.8*
 %{_mandir}/man8/zinject.8*
 %{_mandir}/man8/zpool.8*
@@ -546,8 +551,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man8/zpool-trim.8*
 %{_mandir}/man8/zpool-upgrade.8*
 %{_mandir}/man8/zpool-wait.8*
-%{_mandir}/man8/zpoolconcepts.8*
-%{_mandir}/man8/zpoolprops.8*
+%{_mandir}/man8/zpool_influxdb.8*
 %{_mandir}/man8/zstream.8*
 %{_mandir}/man8/zstreamdump.8*
 
@@ -564,7 +568,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libzfsbootenv.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libzfsbootenv.so.1
 %attr(755,root,root) %{_libdir}/libzpool.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libzpool.so.4
+%attr(755,root,root) %ghost %{_libdir}/libzpool.so.5
 
 %files devel
 %defattr(644,root,root,755)
@@ -602,6 +606,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{dracutlibdir}/modules.d/02zfsexpandknowledge/module-setup.sh
 %dir %{dracutlibdir}/modules.d/90zfs
 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/export-zfs.sh
+%attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/import-opts-generator.sh
 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/module-setup.sh
 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/mount-zfs.sh
 %attr(755,root,root) %{dracutlibdir}/modules.d/90zfs/parse-zfs.sh
diff --git a/kernel-5.14.patch b/kernel-5.14.patch
new file mode 100644
index 0000000..58172a6
--- /dev/null
+++ b/kernel-5.14.patch
@@ -0,0 +1,156 @@
+From 1b06b03a7be88f4565c2c3114b8d3f2dc9f9408a Mon Sep 17 00:00:00 2001
+From: Brian Behlendorf <behlendorf1 at llnl.gov>
+Date: Fri, 23 Jul 2021 15:28:03 -0700
+Subject: [PATCH] Linux 5.14 compat: blk_alloc_disk()
+
+In Linux 5.14, blk_alloc_queue is no longer exported, and its usage
+has been superseded by blk_alloc_disk, which returns a gendisk struct
+from which we can still retrieve the struct request_queue* that is
+needed in the one place where it is used. This also replaces the call
+to alloc_disk(minors), and minors is now set via struct member
+assignment.
+
+Reviewed-by: Tony Nguyen <tony.nguyen at delphix.com>
+Reviewed-by: Olaf Faaland <faaland1 at llnl.gov>
+Reviewed-by: Coleman Kane <ckane at colemankane.org>
+Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
+Closes #12362
+Closes #12409
+---
+ config/kernel-make-request-fn.m4 | 20 +++++++++++++++
+ module/os/linux/zfs/zvol_os.c    | 43 +++++++++++++++++++++++++-------
+ 2 files changed, 54 insertions(+), 9 deletions(-)
+
+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);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/zfs.git/commitdiff/bed78fc0e1d5155026a431e4ecc324e862780600



More information about the pld-cvs-commit mailing list