diff options
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | 0001-Correct-m4-conditionals-in-curses.m4.patch | 67 | ||||
-rw-r--r-- | 0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch | 99 | ||||
-rw-r--r-- | 0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch | 142 | ||||
-rw-r--r-- | PKGBUILD | 23 |
5 files changed, 10 insertions, 336 deletions
@@ -1,8 +1,8 @@ # Generated by mksrcinfo v8 -# Tue Dec 5 17:35:55 UTC 2017 +# Fri Dec 22 13:20:49 UTC 2017 pkgbase = openafs-modules pkgdesc = Kernel module for OpenAFS - pkgver = 1.6.22 + pkgver = 1.6.22.1 pkgrel = 1 url = http://www.openafs.org install = openafs-modules.install @@ -10,19 +10,14 @@ pkgbase = openafs-modules arch = x86_64 arch = armv7h license = custom:"IBM Public License Version 1.0" + makedepends = libelf makedepends = linux-headers depends = openafs conflicts = openafs-features-libafs conflicts = openafs<1.6.6-2 options = !emptydirs - source = http://openafs.org/dl/1.6.22/openafs-1.6.22-src.tar.bz2 - source = 0001-Correct-m4-conditionals-in-curses.m4.patch - source = 0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch - source = 0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch - sha256sums = 835410b75d14aec1ac6a1138d8194897f1badeffa3a0c282963ad51996712347 - sha256sums = 7d4b9bd370ae00aad978db7ad82950598817c205727e6fa2062c0e0c2ace289a - sha256sums = 9472094ff5f35ca2cc50dcad26f40274a6b409ecc49b80668cf06081e6bf71d9 - sha256sums = b713e7cf5c295254d8e9abe277fd686a89e5e48f27f128761585320a3088ff27 + source = http://openafs.org/dl/1.6.22.1/openafs-1.6.22.1-src.tar.bz2 + sha256sums = 5c617948b6bf5a079c14fb7ee86b99e97d23fe6267ca5e079364acc3f55ccea6 pkgname = openafs-modules diff --git a/0001-Correct-m4-conditionals-in-curses.m4.patch b/0001-Correct-m4-conditionals-in-curses.m4.patch deleted file mode 100644 index b3f8c5edbfd8..000000000000 --- a/0001-Correct-m4-conditionals-in-curses.m4.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 50a6e61096a5064ee49185b25cb721377fdec7d9 Mon Sep 17 00:00:00 2001 -From: Benjamin Kaduk <kaduk@mit.edu> -Date: Mon, 16 Oct 2017 16:53:22 -0500 -Subject: [PATCH 1/3] Correct m4 conditionals in curses.m4 - -AS_IF does not invoke the test(1) shell builtin for us, so we must -take care to consistently use it ourself. - -While here, sprinkle some missing double-quotes around variable -expansions in AS_IF statements in this file. - -Submitted by Bastian Beischer. - -FIXES 134414 - -Change-Id: Iccfe311011f17de6317cf64abdc58b0812b81b8c -Reviewed-on: https://gerrit.openafs.org/12738 -Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -Tested-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit e0c5ada214596d5adb6798682d5e280cc99f447c) -Reviewed-on: https://gerrit.openafs.org/12739 -(cherry picked from commit bc384b7d5e4818c567a64fe4a935f021d936444f) ---- - src/cf/curses.m4 | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/cf/curses.m4 b/src/cf/curses.m4 -index a0cdc60f1..dc01469f5 100644 ---- a/src/cf/curses.m4 -+++ b/src/cf/curses.m4 -@@ -55,7 +55,7 @@ AC_DEFUN([_OPENAFS_CURSES_GETMAXYX_BSD43], - dnl possibly this may need to be done as above in some cases? - AC_CHECK_FUNCS([getmaxx getmaxy], [], [_openafs_curses_bsd43=no]) - LIBS="$save_LIBS" -- AS_IF([$_openafs_curses_bsd43 = yes], [$1], [$2])]) -+ AS_IF([test "$_openafs_curses_bsd43" = yes], [$1], [$2])]) - - dnl _OPENAFS_CURSES_GETMAXYX_BSDVI([ACTION-IF-SUCCESS], [ACTION_IF_FAILURE]) - dnl test for getmaxx() and getmaxy() as from BSD curses as bodily ripped -@@ -68,7 +68,7 @@ AC_DEFUN([_OPENAFS_CURSES_GETMAXYX_BSDVI], - AC_CHECK_MEMBERS([WINDOW._maxx WINDOW._maxy], [], [_openafs_curses_bsdvi=no], - _OPENAFS_CURSES_HEADERS) - LIBS="$save_LIBS" -- AS_IF([$_openafs_curses_bsdvi = yes], [$1], [$2])]) -+ AS_IF([test "$_openafs_curses_bsdvi" = yes], [$1], [$2])]) - - dnl OPENAFS_CURSES_WINDOW_EXTENTS([ACTION-IF-SUCCESS], [ACTION_IF_FAILURE]) - dnl check for standard getmaxyx macro. failing that, try the -@@ -78,11 +78,11 @@ AC_DEFUN([OPENAFS_CURSES_WINDOW_EXTENTS], - [OPENAFS_CURSES_LIB - openafs_curses_extent=none - _OPENAFS_CURSES_GETMAXYX_XTI([openafs_curses_extent=xti]) -- AS_IF([test $openafs_curses_extent = none], -+ AS_IF([test "$openafs_curses_extent" = none], - [_OPENAFS_CURSES_GETMAXYX_BSD43([openafs_curses_extent=bsd])]) -- AS_IF([test $openafs_curses_extent = none], -+ AS_IF([test "$openafs_curses_extent" = none], - [_OPENAFS_CURSES_GETMAXYX_BSDVI([openafs_curses_extent=vi])],) -- AS_IF([test $openafs_curses_extent != none], [$1], [$2])]) -+ AS_IF([test "$openafs_curses_extent" != none], [$1], [$2])]) - - dnl The top level curses group - AC_DEFUN([OPENAFS_CURSES], --- -2.15.1 - diff --git a/0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch b/0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch deleted file mode 100644 index 1e47d68b857d..000000000000 --- a/0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch +++ /dev/null @@ -1,99 +0,0 @@ -From d1e45fa924711f904c256f5055d6ebae6cc18a88 Mon Sep 17 00:00:00 2001 -From: Damien Diederen <ddiederen@sinenomine.net> -Date: Mon, 18 Sep 2017 11:59:40 +0200 -Subject: [PATCH 2/3] Linux: Test for __vfs_write rather than __vfs_read - -The following commit: - - commit eb031849d52e61d24ba54e9d27553189ff328174 - Author: Christoph Hellwig <hch@lst.de> - Date: Fri Sep 1 17:39:23 2017 +0200 - - fs: unexport __vfs_read/__vfs_write - -unexports both __vfs_read and __vfs_write, but keeps the former in -fs.h--as it is is still being used by another part of the tree. - -This situation results in a false positive in our Autoconf check, -which does not see the export statements, and ends up marking the -corresponding API as available. - -That, in turn, causes some code which assumes symmetry with -__vfs_write to fail to compile. - -Switch to testing for __vfs_write, which correctly marks the API as -unavailable. - -Reviewed-on: https://gerrit.openafs.org/12728 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 929e77a886fc9853ee292ba1aa52a920c454e94b) - -Reviewed-on: https://gerrit.openafs.org/12736 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit c42a25d28fbcc76fdcac2b5f29704f8f1b353b45) - -Change-Id: I27c1c67bed6ebb922389ebb70cbb7fc238378b58 ---- - acinclude.m4 | 4 ++-- - src/afs/LINUX/osi_compat.h | 4 ++-- - src/afs/LINUX/osi_vnodeops.c | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index d80cacd78..8353ca597 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -939,9 +939,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) - - dnl Function existence checks - -- AC_CHECK_LINUX_FUNC([__vfs_read], -+ AC_CHECK_LINUX_FUNC([__vfs_write], - [#include <linux/fs.h>], -- [__vfs_read(NULL, NULL, 0, NULL);]) -+ [__vfs_write(NULL, NULL, 0, NULL);]) - AC_CHECK_LINUX_FUNC([bdi_init], - [#include <linux/backing-dev.h>], - [bdi_init(NULL);]) -diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h -index 8e72161bf..9ebe9c178 100644 ---- a/src/afs/LINUX/osi_compat.h -+++ b/src/afs/LINUX/osi_compat.h -@@ -595,7 +595,7 @@ afs_d_invalidate(struct dentry *dp) - static inline int - afs_file_read(struct file *filp, char __user *buf, size_t len, loff_t *pos) - { --#if defined(HAVE_LINUX___VFS_READ) -+#if defined(HAVE_LINUX___VFS_WRITE) - return __vfs_read(filp, buf, len, pos); - #else - return filp->f_op->read(filp, buf, len, pos); -@@ -605,7 +605,7 @@ afs_file_read(struct file *filp, char __user *buf, size_t len, loff_t *pos) - static inline int - afs_file_write(struct file *filp, char __user *buf, size_t len, loff_t *pos) - { --#if defined(HAVE_LINUX___VFS_READ) -+#if defined(HAVE_LINUX___VFS_WRITE) - return __vfs_write(filp, buf, len, pos); - #else - return filp->f_op->write(filp, buf, len, pos); -diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c -index f46d8dda8..3d9d71791 100644 ---- a/src/afs/LINUX/osi_vnodeops.c -+++ b/src/afs/LINUX/osi_vnodeops.c -@@ -807,7 +807,7 @@ struct file_operations afs_file_fops = { - #ifdef STRUCT_FILE_OPERATIONS_HAS_READ_ITER - .read_iter = afs_linux_read_iter, - .write_iter = afs_linux_write_iter, --# if !defined(HAVE_LINUX___VFS_READ) -+# if !defined(HAVE_LINUX___VFS_WRITE) - .read = new_sync_read, - .write = new_sync_write, - # endif --- -2.15.1 - diff --git a/0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch b/0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch deleted file mode 100644 index ec26c99fb220..000000000000 --- a/0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 8bcc735dac68eab9fa4c3f95348c0d2c64aa569b Mon Sep 17 00:00:00 2001 -From: Damien Diederen <ddiederen@sinenomine.net> -Date: Mon, 18 Sep 2017 12:18:39 +0200 -Subject: [PATCH 3/3] Linux: Use kernel_read/kernel_write when __vfs variants - are unavailable - -We hide the uses of set_fs/get_fs behind a macro, as those functions -are likely to soon become unavailable: - -> Christoph Hellwig suggested removing all calls outside of the core -> filesystem and architecture code; Andy Lutomirski went one step -> further and said they should all go. - - https://lwn.net/Articles/722267/ - -Reviewed-on: https://gerrit.openafs.org/12729 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit 5ee516b3789d3545f3d78fb3aba2480308359945) - -Reviewed-on: https://gerrit.openafs.org/12737 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> -Reviewed-by: Mark Vitale <mvitale@sinenomine.net> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -(cherry picked from commit d93f80622370f50d7bce5c5b00cd062f15ee9eba) - -Change-Id: Ib4515c858d0a06d3706ec7de212c35551d3e7240 ---- - acinclude.m4 | 3 +++ - src/afs/LINUX/osi_compat.h | 12 ++++++++++++ - src/afs/LINUX/osi_file.c | 6 ++++++ - src/afs/LINUX/osi_vnodeops.c | 2 +- - 4 files changed, 22 insertions(+), 1 deletion(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 8353ca597..94b943622 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -942,6 +942,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) - AC_CHECK_LINUX_FUNC([__vfs_write], - [#include <linux/fs.h>], - [__vfs_write(NULL, NULL, 0, NULL);]) -+ AC_CHECK_LINUX_FUNC([kernel_write], -+ [#include <linux/fs.h>], -+ [kernel_write(NULL, NULL, 0, NULL);]) - AC_CHECK_LINUX_FUNC([bdi_init], - [#include <linux/backing-dev.h>], - [bdi_init(NULL);]) -diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h -index 9ebe9c178..9871535f0 100644 ---- a/src/afs/LINUX/osi_compat.h -+++ b/src/afs/LINUX/osi_compat.h -@@ -592,11 +592,21 @@ afs_d_invalidate(struct dentry *dp) - #endif - } - -+#if defined(HAVE_LINUX___VFS_WRITE) -+# define AFS_FILE_NEEDS_SET_FS 1 -+#elif defined(HAVE_LINUX_KERNEL_WRITE) -+/* #undef AFS_FILE_NEEDS_SET_FS */ -+#else -+# define AFS_FILE_NEEDS_SET_FS 1 -+#endif -+ - static inline int - afs_file_read(struct file *filp, char __user *buf, size_t len, loff_t *pos) - { - #if defined(HAVE_LINUX___VFS_WRITE) - return __vfs_read(filp, buf, len, pos); -+#elif defined(HAVE_LINUX_KERNEL_WRITE) -+ return kernel_read(filp, buf, len, pos); - #else - return filp->f_op->read(filp, buf, len, pos); - #endif -@@ -607,6 +617,8 @@ afs_file_write(struct file *filp, char __user *buf, size_t len, loff_t *pos) - { - #if defined(HAVE_LINUX___VFS_WRITE) - return __vfs_write(filp, buf, len, pos); -+#elif defined(HAVE_LINUX_KERNEL_WRITE) -+ return kernel_write(filp, buf, len, pos); - #else - return filp->f_op->write(filp, buf, len, pos); - #endif -diff --git a/src/afs/LINUX/osi_file.c b/src/afs/LINUX/osi_file.c -index f889fd16b..a028ee740 100644 ---- a/src/afs/LINUX/osi_file.c -+++ b/src/afs/LINUX/osi_file.c -@@ -357,7 +357,9 @@ int - osi_rdwr(struct osi_file *osifile, struct uio *uiop, int rw) - { - struct file *filp = osifile->filp; -+#ifdef AFS_FILE_NEEDS_SET_FS - mm_segment_t old_fs = {0}; -+#endif /* AFS_FILE_NEEDS_SET_FS */ - int code = 0; - struct iovec *iov; - size_t count; -@@ -367,11 +369,13 @@ osi_rdwr(struct osi_file *osifile, struct uio *uiop, int rw) - savelim = current->TASK_STRUCT_RLIM[RLIMIT_FSIZE].rlim_cur; - current->TASK_STRUCT_RLIM[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY; - -+#ifdef AFS_FILE_NEEDS_SET_FS - if (uiop->uio_seg == AFS_UIOSYS) { - /* Switch into user space */ - old_fs = get_fs(); - set_fs(get_ds()); - } -+#endif /* AFS_FILE_NEEDS_SET_FS */ - - while (code == 0 && uiop->uio_resid > 0 && uiop->uio_iovcnt > 0) { - iov = uiop->uio_iov; -@@ -408,10 +412,12 @@ osi_rdwr(struct osi_file *osifile, struct uio *uiop, int rw) - code = 0; - } - -+#ifdef AFS_FILE_NEEDS_SET_FS - if (uiop->uio_seg == AFS_UIOSYS) { - /* Switch back into kernel space */ - set_fs(old_fs); - } -+#endif /* AFS_FILE_NEEDS_SET_FS */ - - current->TASK_STRUCT_RLIM[RLIMIT_FSIZE].rlim_cur = savelim; - -diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c -index 3d9d71791..051452b34 100644 ---- a/src/afs/LINUX/osi_vnodeops.c -+++ b/src/afs/LINUX/osi_vnodeops.c -@@ -807,7 +807,7 @@ struct file_operations afs_file_fops = { - #ifdef STRUCT_FILE_OPERATIONS_HAS_READ_ITER - .read_iter = afs_linux_read_iter, - .write_iter = afs_linux_write_iter, --# if !defined(HAVE_LINUX___VFS_WRITE) -+# if !defined(HAVE_LINUX___VFS_WRITE) && !defined(HAVE_LINUX_KERNEL_WRITE) - .read = new_sync_read, - .write = new_sync_write, - # endif --- -2.15.1 - @@ -5,25 +5,19 @@ pkgname=openafs-modules _srcname=openafs -pkgver=1.6.22 +pkgver=1.6.22.1 pkgrel=1 pkgdesc="Kernel module for OpenAFS" arch=('i686' 'x86_64' 'armv7h') url="http://www.openafs.org" license=('custom:"IBM Public License Version 1.0"') depends=('openafs') -makedepends=('linux-headers') +makedepends=('libelf' 'linux-headers') conflicts=('openafs-features-libafs' 'openafs<1.6.6-2') options=(!emptydirs) -source=(http://openafs.org/dl/${pkgver}/${_srcname}-${pkgver}-src.tar.bz2 - 0001-Correct-m4-conditionals-in-curses.m4.patch - 0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch - 0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch) +source=(http://openafs.org/dl/${pkgver}/${_srcname}-${pkgver}-src.tar.bz2) install=openafs-modules.install -sha256sums=('835410b75d14aec1ac6a1138d8194897f1badeffa3a0c282963ad51996712347' - '7d4b9bd370ae00aad978db7ad82950598817c205727e6fa2062c0e0c2ace289a' - '9472094ff5f35ca2cc50dcad26f40274a6b409ecc49b80668cf06081e6bf71d9' - 'b713e7cf5c295254d8e9abe277fd686a89e5e48f27f128761585320a3088ff27') +sha256sums=('5c617948b6bf5a079c14fb7ee86b99e97d23fe6267ca5e079364acc3f55ccea6') # Heuristic to determine version of installed kernel # You can modify this if the heuristic fails @@ -33,15 +27,8 @@ _kernelver=$(cat ${_extramodules}/version) prepare() { cd ${srcdir}/${_srcname}-${pkgver} - # Fix curses checks during configure (https://gerrit.openafs.org/12740/) - patch -p1 < ${srcdir}/0001-Correct-m4-conditionals-in-curses.m4.patch - - # Fix compatibility with Linux 4.14 - patch -p1 < ${srcdir}/0002-Linux-Test-for-__vfs_write-rather-than-__vfs_read.patch - patch -p1 < ${srcdir}/0003-Linux-Use-kernel_read-kernel_write-when-__vfs-varian.patch - # Only needed when changes to configure were made - ./regen.sh -q + # ./regen.sh -q } build() { |