[pve-devel] [PATCH zfsonlinux 1/3] update/rebase to spl-0.7.12 with patches from ZOL

Stoiko Ivanov s.ivanov at proxmox.com
Wed Nov 14 20:16:17 CET 2018


Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
---
 ...fine-timestruc_t-for-Lustre-compatibility.patch | 34 +++++++++++++
 ...ackport-vnode.h-changes-from-zfs-93ce2b4c.patch | 35 +++++++++++++
 ...005-Linux-4.20-compat-current_kernel_time.patch | 40 +++++++++++++++
 ...ldRequires-gcc-make-elfutils-libelf-devel.patch | 57 ++++++++++++++++++++++
 spl-patches/0007-Tag-spl-0.7.12.patch              | 56 +++++++++++++++++++++
 spl-patches/series                                 |  5 ++
 6 files changed, 227 insertions(+)
 create mode 100644 spl-patches/0003-Define-timestruc_t-for-Lustre-compatibility.patch
 create mode 100644 spl-patches/0004-Backport-vnode.h-changes-from-zfs-93ce2b4c.patch
 create mode 100644 spl-patches/0005-Linux-4.20-compat-current_kernel_time.patch
 create mode 100644 spl-patches/0006-Add-BuildRequires-gcc-make-elfutils-libelf-devel.patch
 create mode 100644 spl-patches/0007-Tag-spl-0.7.12.patch

diff --git a/spl-patches/0003-Define-timestruc_t-for-Lustre-compatibility.patch b/spl-patches/0003-Define-timestruc_t-for-Lustre-compatibility.patch
new file mode 100644
index 0000000..da6b06c
--- /dev/null
+++ b/spl-patches/0003-Define-timestruc_t-for-Lustre-compatibility.patch
@@ -0,0 +1,34 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Hutter <hutter2 at llnl.gov>
+Date: Fri, 26 Oct 2018 01:24:24 -0400
+Subject: [PATCH] Define timestruc_t for Lustre compatibility
+
+Lustre 2.8 (and possibly other versions) are still using timestruc_t,
+which was removed in spl-0.7.10 in favor of inode_timespec_t.  Add
+in a backwards compatibility #define for timestruc_t so that Lustre
+builds.
+
+Reviewed by: Brian Behlendorf <behlendorf1 at llnl.gov>
+Reviewed-by: George Melikov <mail at gmelikov.ru>
+Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
+Closes #8014
+
+Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
+---
+ include/sys/time.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/include/sys/time.h b/include/sys/time.h
+index 59557af..9029671 100644
+--- a/include/sys/time.h
++++ b/include/sys/time.h
+@@ -66,6 +66,9 @@ typedef struct timespec64	inode_timespec_t;
+ typedef struct timespec		inode_timespec_t;
+ #endif
+ 
++/* Include for Lustre compatibility */
++#define        timestruc_t     inode_timespec_t
++
+ static inline void
+ gethrestime(inode_timespec_t *ts)
+  {
diff --git a/spl-patches/0004-Backport-vnode.h-changes-from-zfs-93ce2b4c.patch b/spl-patches/0004-Backport-vnode.h-changes-from-zfs-93ce2b4c.patch
new file mode 100644
index 0000000..9475002
--- /dev/null
+++ b/spl-patches/0004-Backport-vnode.h-changes-from-zfs-93ce2b4c.patch
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Hutter <hutter2 at llnl.gov>
+Date: Fri, 26 Oct 2018 06:51:38 -0400
+Subject: [PATCH] Backport vnode.h changes from zfs:93ce2b4c
+
+This backports the vnode.h changes from zfs:93ce2b4c for zfs-0.7.12.
+
+Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
+Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
+---
+ include/sys/vnode.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/sys/vnode.h b/include/sys/vnode.h
+index 87f12d6..279bd87 100644
+--- a/include/sys/vnode.h
++++ b/include/sys/vnode.h
+@@ -87,7 +87,7 @@
+ #define	AT_MTIME	ATTR_MTIME
+ #define	AT_CTIME	ATTR_CTIME
+ 
+-#define	ATTR_XVATTR	(1 << 31)
++#define	ATTR_XVATTR	(1U << 31)
+ #define	AT_XVATTR	ATTR_XVATTR
+ 
+ #define	ATTR_IATTR_MASK	(ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_SIZE | \
+@@ -121,7 +121,7 @@ typedef enum vtype {
+ 
+ typedef struct vattr {
+ 	enum vtype	va_type;	/* vnode type */
+-	uint_t		va_mask;	/* attribute bit-mask */
++	uint32_t        va_mask;        /* attribute bit-mask */
+ 	ushort_t	va_mode;	/* acc mode */
+ 	uid_t		va_uid;		/* owner uid */
+ 	gid_t		va_gid;		/* owner gid */
diff --git a/spl-patches/0005-Linux-4.20-compat-current_kernel_time.patch b/spl-patches/0005-Linux-4.20-compat-current_kernel_time.patch
new file mode 100644
index 0000000..ff656b5
--- /dev/null
+++ b/spl-patches/0005-Linux-4.20-compat-current_kernel_time.patch
@@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Hutter <hutter2 at llnl.gov>
+Date: Wed, 24 Oct 2018 22:42:14 -0700
+Subject: [PATCH] Linux 4.20 compat: current_kernel_time()
+
+Commit torvalds/linux at 976516404 removed the current_kernel_time()
+function (and several others).  All callers are expected to use
+current_kernel_time64().  Update the gethrestime_sec() wrapper
+accordingly.
+
+Backported to SPL from zfs:82c0a050f
+
+Reviewed-by: Olaf Faaland <faaland1 at llnl.gov>
+Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
+Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
+Closes #8074
+
+Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
+---
+ include/sys/time.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/include/sys/time.h b/include/sys/time.h
+index 9029671..563c210 100644
+--- a/include/sys/time.h
++++ b/include/sys/time.h
+@@ -82,8 +82,11 @@ gethrestime(inode_timespec_t *ts)
+ static inline time_t
+ gethrestime_sec(void)
+ {
+-	struct timespec ts;
+-	ts = current_kernel_time();
++#if defined(HAVE_INODE_TIMESPEC64_TIMES)
++	inode_timespec_t ts = current_kernel_time64();
++#else
++	inode_timespec_t ts = current_kernel_time();
++#endif
+ 	return (ts.tv_sec);
+ }
+ 
diff --git a/spl-patches/0006-Add-BuildRequires-gcc-make-elfutils-libelf-devel.patch b/spl-patches/0006-Add-BuildRequires-gcc-make-elfutils-libelf-devel.patch
new file mode 100644
index 0000000..a8129a2
--- /dev/null
+++ b/spl-patches/0006-Add-BuildRequires-gcc-make-elfutils-libelf-devel.patch
@@ -0,0 +1,57 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Hutter <hutter2 at llnl.gov>
+Date: Wed, 7 Nov 2018 22:13:20 -0800
+Subject: [PATCH] Add BuildRequires gcc, make, elfutils-libelf-devel
+
+This adds a BuildRequires for gcc, make, and elfutils-libelf-devel
+into our spec files.  gcc has been a packaging requirement for
+awhile now:
+
+https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B
+
+These additional BuildRequires allow us to mock build in
+Fedora 29.
+
+(This is the backported SPL equivalent of the original ZFS patch)
+
+Reviewed-by: Neal Gompa <ngompa at datto.com>
+Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
+Signed-off-by:  Tony Hutter <hutter2 at llnl.gov>
+Closes #8095
+Closes #8102
+
+Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
+---
+ rpm/generic/spl-kmod.spec.in | 4 ++++
+ rpm/generic/spl.spec.in      | 3 +++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/rpm/generic/spl-kmod.spec.in b/rpm/generic/spl-kmod.spec.in
+index 4cc1faf..f986cde 100644
+--- a/rpm/generic/spl-kmod.spec.in
++++ b/rpm/generic/spl-kmod.spec.in
+@@ -26,6 +26,10 @@ URL:            http://zfsonlinux.org/
+ Source0:        %{module}-%{version}.tar.gz
+ Source10:       kmodtool
+ BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n)
++%if 0%{?rhel}%{?fedora}
++BuildRequires:  gcc, make
++BuildRequires:  elfutils-libelf-devel
++%endif
+ 
+ # The developments headers will conflict with the dkms packages.
+ Conflicts:      %{module}-dkms
+diff --git a/rpm/generic/spl.spec.in b/rpm/generic/spl.spec.in
+index 4b3a3d7..b17c68e 100644
+--- a/rpm/generic/spl.spec.in
++++ b/rpm/generic/spl.spec.in
+@@ -20,6 +20,9 @@ Source0:        %{name}-%{version}.tar.gz
+ BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+ Requires:       %{name}-kmod = %{version}
+ Provides:       %{name}-kmod-common = %{version}
++%if 0%{?rhel}%{?fedora}%{?suse_version}
++BuildRequires:  gcc, make
++%endif
+ 
+ %description
+ This package contains the commands to verify the SPL
diff --git a/spl-patches/0007-Tag-spl-0.7.12.patch b/spl-patches/0007-Tag-spl-0.7.12.patch
new file mode 100644
index 0000000..247fe1e
--- /dev/null
+++ b/spl-patches/0007-Tag-spl-0.7.12.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Hutter <hutter2 at llnl.gov>
+Date: Thu, 8 Nov 2018 14:38:28 -0800
+Subject: [PATCH] Tag spl-0.7.12
+
+META file and changelog updated.
+
+Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
+Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
+---
+ META                         | 2 +-
+ rpm/generic/spl-kmod.spec.in | 3 +++
+ rpm/generic/spl.spec.in      | 3 +++
+ 3 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/META b/META
+index fc98597..de72c4f 100644
+--- a/META
++++ b/META
+@@ -1,7 +1,7 @@
+ Meta:         1
+ Name:         spl
+ Branch:       1.0
+-Version:      0.7.11
++Version:      0.7.12
+ Release:      1
+ Release-Tags: relext
+ License:      GPL
+diff --git a/rpm/generic/spl-kmod.spec.in b/rpm/generic/spl-kmod.spec.in
+index f986cde..ef32f93 100644
+--- a/rpm/generic/spl-kmod.spec.in
++++ b/rpm/generic/spl-kmod.spec.in
+@@ -171,6 +171,9 @@ chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
+ rm -rf $RPM_BUILD_ROOT
+ 
+ %changelog
++* Thu Nov 08 2018 Tony Hutter <hutter2 at llnl.gov> - 0.7.12-1
++- Released 0.7.12-1, detailed release notes are available at:
++- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.12
+ * Thu Sep 13 2018 Tony Hutter <hutter2 at llnl.gov> - 0.7.11-1
+ - Released 0.7.11-1, detailed release notes are available at:
+ - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11
+diff --git a/rpm/generic/spl.spec.in b/rpm/generic/spl.spec.in
+index b17c68e..30ed496 100644
+--- a/rpm/generic/spl.spec.in
++++ b/rpm/generic/spl.spec.in
+@@ -47,6 +47,9 @@ make install DESTDIR=%{?buildroot}
+ %{_mandir}/man5/*
+ 
+ %changelog
++* Thu Nov 08 2018 Tony Hutter <hutter2 at llnl.gov> - 0.7.12-1
++- Released 0.7.12-1, detailed release notes are available at:
++- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.12
+ * Thu Sep 13 2018 Tony Hutter <hutter2 at llnl.gov> - 0.7.11-1
+ - Released 0.7.11-1, detailed release notes are available at:
+ - https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.11
diff --git a/spl-patches/series b/spl-patches/series
index 5bcfa6a..5605ca5 100644
--- a/spl-patches/series
+++ b/spl-patches/series
@@ -1,2 +1,7 @@
 0001-remove-DKMS-and-module-build.patch
 0002-deadlock-between-mm_sem-and-tx-assign-in-zfs_write-a.patch
+0003-Define-timestruc_t-for-Lustre-compatibility.patch
+0004-Backport-vnode.h-changes-from-zfs-93ce2b4c.patch
+0005-Linux-4.20-compat-current_kernel_time.patch
+0006-Add-BuildRequires-gcc-make-elfutils-libelf-devel.patch
+0007-Tag-spl-0.7.12.patch
-- 
2.11.0





More information about the pve-devel mailing list