Package Details: zfs-dkms 2.2.6-1

Git Clone URL: https://aur.archlinux.org/zfs-dkms.git (read-only, click to copy)
Package Base: zfs-dkms
Description: Kernel modules for the Zettabyte File System.
Upstream URL: https://zfsonlinux.org/
Licenses: CDDL
Provides: SPL-MODULE, zfs, ZFS-MODULE
Submitter: isiachi
Maintainer: kstolp
Last Packager: kstolp
Votes: 179
Popularity: 6.41
First Submitted: 2015-08-31 12:01 (UTC)
Last Updated: 2024-09-05 04:42 (UTC)

Pinned Comments

kstolp commented on 2023-09-29 00:34 (UTC)

When requesting changes, please include detailed reasoning for the change.

kstolp commented on 2023-01-07 09:31 (UTC)

If you receive this error when trying to build, it is because you have not imported the GPG keys used for verification.

==> ERROR: One or more PGP signatures could not be verified!

You have two options:

1) Import the two keys into your keyring. ArchWiki article. You can find the key IDs in the PKGBUILD file, in the validpgpkeys array. (recommended)

2) Alternatively, you can skip this verification by passing the --skippgpcheck argument to makepkg when building. (not recommended)

Latest Comments

« First ‹ Previous 1 .. 28 29 30 31 32 33 34 35 36 37 38 .. 63 Next › Last »

fryfrog commented on 2020-10-14 15:10 (UTC)

@storm.continuity: You need to build both packages, then install them together.

2G_Storm commented on 2020-10-14 07:43 (UTC)

getting this error while trying to install

looking for conflicting packages... error: failed to prepare transaction (could not satisfy dependencies) :: installing zfs-utils (0.8.5-1) breaks dependency 'zfs-utils=0.8.4' required by zfs-dkms

Asgaroth commented on 2020-08-22 14:23 (UTC)

try:

gpg --keyserver pool.sks-keyservers.net --recv-keys 6AD860EED4598027

eschwartz commented on 2020-08-21 19:29 (UTC)

Upstream merged my backport PR, and it is now applied here too.

utsi commented on 2020-08-20 08:00 (UTC) (edited on 2020-08-20 08:02 (UTC) by utsi)

@storm.continuity zfs-dkms 0.8.4-1 builds with 5.8.1 kernel when if I apply the following patch (submitted by package maintainer)

https://github.com/openzfs/zfs/pull/10728/commits/29a1bc5175da9e94941ff81b2b5079c72353d962

FrederickZh commented on 2020-08-20 07:56 (UTC)

Have some of you guys blocked me or what? lol

greencopper commented on 2020-08-20 07:20 (UTC)

@storm.continuity, no it doesn't build on the 5.8.1 kernel.

greencopper commented on 2020-08-20 07:04 (UTC)

What steps did you do in order to successfully apply the patch?

cdesai commented on 2020-08-19 14:14 (UTC)

Below patch applies on zfs-dkms 0.8.4-1, and runs fine (Only difference from the other patches is kernel-kmem.m4 didn't exist and thus had to be created)

From c5c63099a9d55889b815338e480e6c63e777a6cb Mon Sep 17 00:00:00 2001
From: Chirayu Desai <chirayudesai1@gmail.com>
Date: Wed, 19 Aug 2020 19:22:14 +0530
Subject: [PATCH] 5.8

---
 BACKPORT-Linux-5.8-compat-__vmalloc.patch | 152 ++++++++++++++++++++++
 PKGBUILD                                  |  10 +-
 2 files changed, 159 insertions(+), 3 deletions(-)
 create mode 100644 BACKPORT-Linux-5.8-compat-__vmalloc.patch

diff --git a/BACKPORT-Linux-5.8-compat-__vmalloc.patch b/BACKPORT-Linux-5.8-compat-__vmalloc.patch
new file mode 100644
index 0000000000..a58fb6377e
--- /dev/null
+++ b/BACKPORT-Linux-5.8-compat-__vmalloc.patch
@@ -0,0 +1,152 @@
+From 6cc95288ccea12ad7b67b2b5b3997dfad8e5b5c9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Niew=C3=B6hner?=
+ <c0d3z3r0@users.noreply.github.com>
+Date: Tue, 9 Jun 2020 01:32:02 +0200
+Subject: [PATCH] BACKPORT: Linux 5.8 compat: __vmalloc()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The `pgprot` argument has been removed from `__vmalloc` in Linux 5.8,
+being `PAGE_KERNEL` always now [1].
+
+Detect this during configure and define a wrapper for older kernels.
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/mm/vmalloc.c?h=next-20200605&id=88dca4ca5a93d2c09e5bbc6a62fbfc3af83c4fca
+
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Co-authored-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
+Co-authored-by: Michael Niewöhner <foss@mniewoehner.de>
+Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
+Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
+Closes #10422
+---
+ config/kernel-kmem.m4       | 26 ++++++++++++++++++++++++++
+ config/kernel.m4            |  2 ++
+ include/spl/sys/kmem.h      |  9 +++++++++
+ module/spl/spl-kmem-cache.c |  4 ++--
+ module/spl/spl-kmem.c       |  9 ++++-----
+ 5 files changed, 43 insertions(+), 7 deletions(-)
+ create mode 100644 config/kernel-kmem.m4
+
+diff --git a/config/kernel-kmem.m4 b/config/kernel-kmem.m4
+new file mode 100644
+index 0000000000..f1c0d2412
+--- /dev/null
++++ b/config/kernel-kmem.m4
+@@ -0,0 +1,25 @@
++dnl #
++dnl # 5.8 API,
++dnl # __vmalloc PAGE_KERNEL removal
++dnl #
++AC_DEFUN([ZFS_AC_KERNEL_SRC_VMALLOC_PAGE_KERNEL], [
++  ZFS_LINUX_TEST_SRC([__vmalloc], [
++      #include <linux/mm.h>
++      #include <linux/vmalloc.h>
++  ],[
++      void *p __attribute__ ((unused));
++
++      p = __vmalloc(0, GFP_KERNEL, PAGE_KERNEL);
++  ])
++])
++
++AC_DEFUN([ZFS_AC_KERNEL_VMALLOC_PAGE_KERNEL], [
++  AC_MSG_CHECKING([whether __vmalloc(ptr, flags, pageflags) is available])
++  ZFS_LINUX_TEST_RESULT([__vmalloc], [
++      AC_MSG_RESULT(yes)
++      AC_DEFINE(HAVE_VMALLOC_PAGE_KERNEL, 1, [__vmalloc page flags exists])
++  ],[
++      AC_MSG_RESULT(no)
++  ])
++])
++-
+diff --git a/config/kernel.m4 b/config/kernel.m4
+index b67fcef8c..23edfdcd8 100644
+--- a/config/kernel.m4
++++ b/config/kernel.m4
+@@ -45,6 +45,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
+   ZFS_AC_KERNEL_SRC_SCHED
+   ZFS_AC_KERNEL_SRC_USLEEP_RANGE
+   ZFS_AC_KERNEL_SRC_KMEM_CACHE
++  ZFS_AC_KERNEL_SRC_VMALLOC_PAGE_KERNEL
+   ZFS_AC_KERNEL_SRC_WAIT
+   ZFS_AC_KERNEL_SRC_INODE_TIMES
+   ZFS_AC_KERNEL_SRC_INODE_LOCK
+@@ -163,6 +164,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
+   ZFS_AC_KERNEL_SCHED
+   ZFS_AC_KERNEL_USLEEP_RANGE
+   ZFS_AC_KERNEL_KMEM_CACHE
++  ZFS_AC_KERNEL_VMALLOC_PAGE_KERNEL
+   ZFS_AC_KERNEL_WAIT
+   ZFS_AC_KERNEL_INODE_TIMES
+   ZFS_AC_KERNEL_INODE_LOCK
+diff --git a/include/spl/sys/kmem.h b/include/spl/sys/kmem.h
+index 72d3a7765..ca15bfe7f 100644
+--- a/include/spl/sys/kmem.h
++++ b/include/spl/sys/kmem.h
+@@ -169,6 +169,15 @@ extern void *spl_kmem_alloc(size_t sz, int fl, const char *func, int line);
+ extern void *spl_kmem_zalloc(size_t sz, int fl, const char *func, int line);
+ extern void spl_kmem_free(const void *ptr, size_t sz);
+ 
++/*
++ * 5.8 API change, pgprot_t argument removed.
++ */
++#ifdef HAVE_VMALLOC_PAGE_KERNEL
++#define   spl_vmalloc(size, flags)    __vmalloc(size, flags, PAGE_KERNEL)
++#else
++#define   spl_vmalloc(size, flags)    __vmalloc(size, flags)
++#endif
++
+ /*
+  * The following functions are only available for internal use.
+  */
+diff --git a/module/spl/spl-kmem-cache.c b/module/spl/spl-kmem-cache.c
+index d71b4b348..4866b2993 100644
+--- a/module/spl/spl-kmem-cache.c
++++ b/module/spl/spl-kmem-cache.c
+@@ -203,7 +203,7 @@ kv_alloc(spl_kmem_cache_t *skc, int size, int flags)
+       ASSERT(ISP2(size));
+       ptr = (void *)__get_free_pages(lflags, get_order(size));
+   } else {
+-      ptr = __vmalloc(size, lflags | __GFP_HIGHMEM, PAGE_KERNEL);
++      ptr = spl_vmalloc(size, lflags | __GFP_HIGHMEM);
+   }
+ 
+   /* Resulting allocated memory will be page aligned */
+@@ -1242,7 +1242,7 @@ spl_cache_grow(spl_kmem_cache_t *skc, int flags, void **obj)
+    * allocation.
+    *
+    * However, this can't be applied to KVM_VMEM due to a bug that
+-   * __vmalloc() doesn't honor gfp flags in page table allocation.
++   * spl_vmalloc() doesn't honor gfp flags in page table allocation.
+    */
+   if (!(skc->skc_flags & KMC_VMEM)) {
+       rc = __spl_cache_grow(skc, flags | KM_NOSLEEP);
+diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c
+index cee69ad43..ca1fc145f 100644
+--- a/module/spl/spl-kmem.c
++++ b/module/spl/spl-kmem.c
+@@ -172,16 +172,15 @@ spl_kmem_alloc_impl(size_t size, int flags, int node)
+        * kmem_zalloc() callers.
+        *
+        * For vmem_alloc() and vmem_zalloc() callers it is permissible
+-       * to use __vmalloc().  However, in general use of __vmalloc()
+-       * is strongly discouraged because a global lock must be
+-       * acquired.  Contention on this lock can significantly
++       * to use spl_vmalloc().  However, in general use of
++       * spl_vmalloc() is strongly discouraged because a global lock
++       * must be acquired.  Contention on this lock can significantly
+        * impact performance so frequently manipulating the virtual
+        * address space is strongly discouraged.
+        */
+       if ((size > spl_kmem_alloc_max) || use_vmem) {
+           if (flags & KM_VMEM) {
+-              ptr = __vmalloc(size, lflags | __GFP_HIGHMEM,
+-                  PAGE_KERNEL);
++              ptr = spl_vmalloc(size, lflags | __GFP_HIGHMEM);
+           } else {
+               return (NULL);
+           }
+-- 
+2.25.1
+
diff --git a/PKGBUILD b/PKGBUILD
index f44d677adb..9d84d68937 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -16,13 +16,16 @@ provides=("ZFS-MODULE=${pkgver}" "SPL-MODULE=${pkgver}" 'spl-dkms')
 provides+=('zfs')
 replaces=('spl-dkms')
 source=("https://github.com/zfsonlinux/zfs/releases/download/zfs-${pkgver}/zfs-${pkgver}.tar.gz"{,.asc}
-        "0001-only-build-the-module-in-dkms.conf.patch")
+        "0001-only-build-the-module-in-dkms.conf.patch"
+        "BACKPORT-Linux-5.8-compat-__vmalloc.patch")
 sha256sums=('2b988f5777976f09d08083f6bebf6e67219c4c4c183c1f33033fb7e5e5eacafb'
             'SKIP'
-            '780e590383fb00389c5e02ac15709b7a476d9e07d3c4935ed9eb67c951a88409')
+            '780e590383fb00389c5e02ac15709b7a476d9e07d3c4935ed9eb67c951a88409'
+            '7441f67d50542b9197c722c6d1b37bb28493c5b478094708eeae927d3e5bb947')
 b2sums=('776bcd6dfab8825c07d315085e288b29bf543d6957325d5d566b7b78c04505dde9bd25eb6684cb4a1b6a657de8a4e1290d04d2b9079d26d6b834a70f1ec3b569'
         'SKIP'
-        '1fdae935043d979b9241f07f8baa25a9a0367c24c31c84a59dfe8d6b468a523d8f49b68da3c7fd3194db6638f9d7bef046fc5e2669ce25d73c65009c16bf6c50')
+        '1fdae935043d979b9241f07f8baa25a9a0367c24c31c84a59dfe8d6b468a523d8f49b68da3c7fd3194db6638f9d7bef046fc5e2669ce25d73c65009c16bf6c50'
+   '795a9db25e5697b0c57dc69dbe192434a7dbcfadfe940f7c5e3cca23c37eb57dae0eeeae0b173fa1329778acaf0d8b333b6183ef84075921968439067db64db8')
 validpgpkeys=('4F3BA9AB6D1F8D683DC2DFB56AD860EED4598027'  # Tony Hutter (GPG key for signing ZFS releases) <hutter2@llnl.gov>
               'C33DF142657ED1F7C328A2960AB9E991C6AF658B') # Brian Behlendorf <behlendorf1@llnl.gov>

@@ -30,6 +33,7 @@ prepare() {
     cd "${srcdir}"/${pkgname%-dkms}-${pkgver}

     patch -p1 -i ../0001-only-build-the-module-in-dkms.conf.patch
+    patch -p1 -i ../BACKPORT-Linux-5.8-compat-__vmalloc.patch

     # remove unneeded sections from module build
     sed -ri "/AC_CONFIG_FILES/,/]\)/{
-- 
2.28.0

2G_Storm commented on 2020-08-19 10:11 (UTC)

@Utsi, Pardon my ignorance but... does it mean it should build now with a 5.8.1 kernel? Because as of today i still have the issue.