Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=kernelbump.git;a=commitdiff;h=65a9be6d6cc06fb4f8b47f88ebc2ba63617ffe36

commit 65a9be6d6cc06fb4f8b47f88ebc2ba63617ffe36
Author: DeX77 <[email protected]>
Date:   Mon May 1 15:27:17 2017 +0200

spl-0.7.0-21-x86_64

* fix build

diff --git a/source/base-extra/spl/FrugalBuild 
b/source/base-extra/spl/FrugalBuild
index 3e03a9d..3567c55 100644
--- a/source/base-extra/spl/FrugalBuild
+++ b/source/base-extra/spl/FrugalBuild
@@ -11,8 +11,10 @@ depends=('glibc')
groups=('base-extra')
archs=('x86_64')
up2date="Flasttar $url"
-source=(https://github.com/zfsonlinux/$pkgname/archive/$pkgname-$pkgver$pkgextraver.tar.gz)
-sha1sums=('bd1909cae5711713926e40d1c3ec7256e789be8b')
+source=(https://github.com/zfsonlinux/$pkgname/archive/$pkgname-$pkgver$pkgextraver.tar.gz
 \
+       kernel-4.11.patch )
+sha1sums=('bd1909cae5711713926e40d1c3ec7256e789be8b' \
+          'bf1fde48dd509e296f6269e09d6c91d7d7f15ff8')
_F_cd_path="$pkgname-$pkgname-$pkgver$pkgextraver"
Finclude kernel-module

diff --git a/source/base-extra/spl/kernel-4.11.patch 
b/source/base-extra/spl/kernel-4.11.patch
new file mode 100644
index 0000000..c33dd9f
--- /dev/null
+++ b/source/base-extra/spl/kernel-4.11.patch
@@ -0,0 +1,247 @@
+diff -Naur spl-spl-0.7.0-rc3/config/spl-build.m4 
spl-spl-0.7.0-rc3.new/config/spl-build.m4
+--- spl-spl-0.7.0-rc3/config/spl-build.m4      2017-01-20 19:17:40.000000000 
+0100
++++ spl-spl-0.7.0-rc3.new/config/spl-build.m4  2017-05-01 15:25:07.000000000 
+0200
+@@ -33,7 +33,6 @@
+       SPL_AC_INODE_TRUNCATE_RANGE
+       SPL_AC_FS_STRUCT_SPINLOCK
+       SPL_AC_KUIDGID_T
+-      SPL_AC_PUT_TASK_STRUCT
+       SPL_AC_KERNEL_FALLOCATE
+       SPL_AC_CONFIG_ZLIB_INFLATE
+       SPL_AC_CONFIG_ZLIB_DEFLATE
+@@ -43,6 +42,9 @@
+       SPL_AC_RWSEM_ACTIVITY
+       SPL_AC_RWSEM_ATOMIC_LONG_COUNT
+       SPL_AC_SCHED_RT_HEADER
++      SPL_AC_SCHED_SIGNAL_HEADER
++      SPL_AC_4ARGS_VFS_GETATTR
++      SPL_AC_3ARGS_VFS_GETATTR
+       SPL_AC_2ARGS_VFS_GETATTR
+       SPL_AC_USLEEP_RANGE
+       SPL_AC_KMEM_CACHE_ALLOCFLAGS
+@@ -1083,25 +1085,6 @@
+ ])
+
+ dnl #
+-dnl # 2.6.39 API change,
+-dnl # __put_task_struct() was exported by the mainline kernel.
+-dnl #
+-AC_DEFUN([SPL_AC_PUT_TASK_STRUCT],
+-      [AC_MSG_CHECKING([whether __put_task_struct() is available])
+-      SPL_LINUX_TRY_COMPILE_SYMBOL([
+-              #include <linux/sched.h>
+-      ], [
+-              __put_task_struct(NULL);
+-      ], [__put_task_struct], [], [
+-              AC_MSG_RESULT(yes)
+-              AC_DEFINE(HAVE_PUT_TASK_STRUCT, 1,
+-                        [__put_task_struct() is available])
+-      ], [
+-              AC_MSG_RESULT(no)
+-      ])
+-])
+-
+-dnl #
+ dnl # 2.6.35 API change,
+ dnl # Unused 'struct dentry *' removed from vfs_fsync() prototype.
+ dnl #
+@@ -1410,33 +1393,84 @@
+ ])
+
+ dnl #
+-dnl # 3.9 API change,
+-dnl # vfs_getattr() uses 2 args
+-dnl # It takes struct path * instead of struct vfsmount * and struct dentry *
++dnl # 4.11 API change,
++dnl # Moved things from linux/sched.h to linux/sched/signal.h
++dnl #
++AC_DEFUN([SPL_AC_SCHED_SIGNAL_HEADER],
++      [AC_MSG_CHECKING([whether header linux/sched/signal.h exists])
++      SPL_LINUX_TRY_COMPILE([
++              #include <linux/sched.h>
++              #include <linux/sched/signal.h>
++      ],[
++              return 0;
++      ],[
++              AC_DEFINE(HAVE_SCHED_SIGNAL_HEADER, 1, [linux/sched/signal.h 
exists])
++              AC_MSG_RESULT(yes)
++      ],[
++              AC_MSG_RESULT(no)
++      ])
++])
++
++dnl #
++dnl # 4.11 API, a528d35e@torvalds/linux
++dnl # vfs_getattr(const struct path *p, struct kstat *s, u32 m, unsigned int 
f)
++dnl #
++AC_DEFUN([SPL_AC_4ARGS_VFS_GETATTR], [
++      AC_MSG_CHECKING([whether vfs_getattr() wants 4 args])
++      SPL_LINUX_TRY_COMPILE([
++              #include <linux/fs.h>
++      ],[
++              vfs_getattr((const struct path *)NULL,
++                      (struct kstat *)NULL,
++                      (u32)0,
++                      (unsigned int)0);
++      ],[
++              AC_MSG_RESULT(yes)
++              AC_DEFINE(HAVE_4ARGS_VFS_GETATTR, 1,
++                [vfs_getattr wants 4 args])
++      ],[
++              AC_MSG_RESULT(no)
++      ])
++])
++
++dnl #
++dnl # 3.9 API
++dnl # vfs_getattr(struct path *p, struct kstat *s)
+ dnl #
+ AC_DEFUN([SPL_AC_2ARGS_VFS_GETATTR], [
+-      AC_MSG_CHECKING([whether vfs_getattr() wants])
++      AC_MSG_CHECKING([whether vfs_getattr() wants 2 args])
+       SPL_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               vfs_getattr((struct path *) NULL,
+                       (struct kstat *)NULL);
+       ],[
+-              AC_MSG_RESULT(2 args)
++              AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_2ARGS_VFS_GETATTR, 1,
+-                        [vfs_getattr wants 2 args])
++                        [vfs_getattr wants 2 args])
+       ],[
+-              SPL_LINUX_TRY_COMPILE([
+-                      #include <linux/fs.h>
+-              ],[
+-                      vfs_getattr((struct vfsmount *)NULL,
+-                              (struct dentry *)NULL,
+-                              (struct kstat *)NULL);
+-              ],[
+-                      AC_MSG_RESULT(3 args)
+-              ],[
+-                      AC_MSG_ERROR(unknown)
+-              ])
++              AC_MSG_RESULT(no)
++      ])
++])
++
++dnl #
++dnl # <3.9 API
++dnl # vfs_getattr(struct vfsmount *v, struct dentry *d, struct kstat *k)
++dnl #
++AC_DEFUN([SPL_AC_3ARGS_VFS_GETATTR], [
++      AC_MSG_CHECKING([whether vfs_getattr() wants 3 args])
++      SPL_LINUX_TRY_COMPILE([
++              #include <linux/fs.h>
++      ],[
++              vfs_getattr((struct vfsmount *)NULL,
++                      (struct dentry *)NULL,
++                      (struct kstat *)NULL);
++      ],[
++              AC_MSG_RESULT(yes)
++              AC_DEFINE(HAVE_3ARGS_VFS_GETATTR, 1,
++                [vfs_getattr wants 3 args])
++      ],[
++              AC_MSG_RESULT(no)
+       ])
+ ])
+
+diff -Naur spl-spl-0.7.0-rc3/include/sys/signal.h 
spl-spl-0.7.0-rc3.new/include/sys/signal.h
+--- spl-spl-0.7.0-rc3/include/sys/signal.h     2017-01-20 19:17:40.000000000 
+0100
++++ spl-spl-0.7.0-rc3.new/include/sys/signal.h 2017-05-01 15:25:02.000000000 
+0200
+@@ -27,6 +27,10 @@
+
+ #include <linux/sched.h>
+
++#ifdef HAVE_SCHED_SIGNAL_HEADER
++#include <linux/sched/signal.h>
++#endif
++
+ #define       FORREAL         0       /* Usual side-effects */
+ #define       JUSTLOOKING     1       /* Don't stop the process */
+
+diff -Naur spl-spl-0.7.0-rc3/module/spl/spl-err.c 
spl-spl-0.7.0-rc3.new/module/spl/spl-err.c
+--- spl-spl-0.7.0-rc3/module/spl/spl-err.c     2017-01-20 19:17:40.000000000 
+0100
++++ spl-spl-0.7.0-rc3.new/module/spl/spl-err.c 2017-05-01 15:24:44.000000000 
+0200
+@@ -65,7 +65,7 @@
+       spl_dumpstack();
+
+       /* Halt the thread to facilitate further debugging */
+-      set_task_state(current, TASK_UNINTERRUPTIBLE);
++      set_current_state(TASK_UNINTERRUPTIBLE);
+       while (1)
+               schedule();
+
+@@ -98,7 +98,7 @@
+               spl_dumpstack();
+
+               /* Halt the thread to facilitate further debugging */
+-              set_task_state(current, TASK_UNINTERRUPTIBLE);
++              set_current_state(TASK_UNINTERRUPTIBLE);
+               while (1)
+                       schedule();
+       }
+diff -Naur spl-spl-0.7.0-rc3/module/spl/spl-generic.c 
spl-spl-0.7.0-rc3.new/module/spl/spl-generic.c
+--- spl-spl-0.7.0-rc3/module/spl/spl-generic.c 2017-01-20 19:17:40.000000000 
+0100
++++ spl-spl-0.7.0-rc3.new/module/spl/spl-generic.c     2017-05-01 
15:25:07.000000000 +0200
+@@ -459,22 +459,6 @@
+ }
+ EXPORT_SYMBOL(ddi_copyout);
+
+-#ifndef HAVE_PUT_TASK_STRUCT
+-/*
+- * This is only a stub function which should never be used.  The SPL should
+- * never be putting away the last reference on a task structure so this will
+- * not be called.  However, we still need to define it so the module does not
+- * have undefined symbol at load time.  That all said if this impossible
+- * thing does somehow happen PANIC immediately so we know about it.
+- */
+-void
+-__put_task_struct(struct task_struct *t)
+-{
+-      PANIC("Unexpectly put last reference on task %d\n", (int)t->pid);
+-}
+-EXPORT_SYMBOL(__put_task_struct);
+-#endif /* HAVE_PUT_TASK_STRUCT */
+-
+ /*
+  * Read the unique system identifier from the /etc/hostid file.
+  *
+diff -Naur spl-spl-0.7.0-rc3/module/spl/spl-vnode.c 
spl-spl-0.7.0-rc3.new/module/spl/spl-vnode.c
+--- spl-spl-0.7.0-rc3/module/spl/spl-vnode.c   2017-01-20 19:17:40.000000000 
+0100
++++ spl-spl-0.7.0-rc3.new/module/spl/spl-vnode.c       2017-05-01 
15:24:55.000000000 +0200
+@@ -153,7 +153,9 @@
+       if (IS_ERR(fp))
+               return (-PTR_ERR(fp));
+
+-#ifdef HAVE_2ARGS_VFS_GETATTR
++#if defined(HAVE_4ARGS_VFS_GETATTR)
++      rc = vfs_getattr(&fp->f_path, &stat, STATX_TYPE, AT_STATX_SYNC_AS_STAT);
++#elif defined(HAVE_2ARGS_VFS_GETATTR)
+       rc = vfs_getattr(&fp->f_path, &stat);
+ #else
+       rc = vfs_getattr(fp->f_path.mnt, fp->f_dentry, &stat);
+@@ -510,7 +512,10 @@
+
+       fp = vp->v_file;
+
+-#ifdef HAVE_2ARGS_VFS_GETATTR
++#if defined(HAVE_4ARGS_VFS_GETATTR)
++      rc = vfs_getattr(&fp->f_path, &stat, STATX_BASIC_STATS,
++          AT_STATX_SYNC_AS_STAT);
++#elif defined(HAVE_2ARGS_VFS_GETATTR)
+       rc = vfs_getattr(&fp->f_path, &stat);
+ #else
+       rc = vfs_getattr(fp->f_path.mnt, fp->f_dentry, &stat);
+@@ -708,7 +713,9 @@
+       if (vp == NULL)
+               goto out_fget;
+
+-#ifdef HAVE_2ARGS_VFS_GETATTR
++#if defined(HAVE_4ARGS_VFS_GETATTR)
++      rc = vfs_getattr(&lfp->f_path, &stat, STATX_TYPE, 
AT_STATX_SYNC_AS_STAT);
++#elif defined(HAVE_2ARGS_VFS_GETATTR)
+       rc = vfs_getattr(&lfp->f_path, &stat);
+ #else
+       rc = vfs_getattr(lfp->f_path.mnt, lfp->f_dentry, &stat);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to