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
