[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