summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO22
-rw-r--r--0001-Linux-3.13-Check-return-value-from-bdi_init.patch66
-rw-r--r--0001-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch (renamed from 0005-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch)6
-rw-r--r--0002-Linux-4.5-no-highmem-in-symlink-ops.patch45
-rw-r--r--0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch80
-rw-r--r--0004-Linux-4.5-don-t-access-i_mutex-directly.patch88
-rw-r--r--PKGBUILD26
7 files changed, 16 insertions, 317 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6129fc01eb3a..0c700e0ac973 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Thu Jun 9 19:51:05 UTC 2016
+# Wed Jun 22 17:51:58 UTC 2016
pkgbase = openafs-modules
pkgdesc = Kernel module for OpenAFS
- pkgver = 1.6.18
- pkgrel = 3
+ pkgver = 1.6.18.1
+ pkgrel = 1
url = http://www.openafs.org
install = openafs-modules.install
arch = i686
@@ -15,18 +15,10 @@ pkgbase = openafs-modules
conflicts = openafs-features-libafs
conflicts = openafs<1.6.6-2
options = !emptydirs
- source = http://openafs.org/dl/1.6.18/openafs-1.6.18-src.tar.bz2
- source = 0001-Linux-3.13-Check-return-value-from-bdi_init.patch
- source = 0002-Linux-4.5-no-highmem-in-symlink-ops.patch
- source = 0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch
- source = 0004-Linux-4.5-don-t-access-i_mutex-directly.patch
- source = 0005-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
- sha256sums = b3c35e7be6b6c86b91e7c699fd015f53c87bc19d1ae8ec3ec9cda6b97327d3b6
- sha256sums = abac60b5ae85a8d9311a13f35d723c63de2049033058736db7b3ef39439c2811
- sha256sums = 0ae7f199e5e4031beef55c93087c34505701ef8f41fce4c255239bb8b48e9888
- sha256sums = c7403d943f4bd5bb61e47b79c8d5c1258ced77800b2c20a603a4676ae9ee6f8c
- sha256sums = 88d7ab67b730eeeaef991cb0db8dabf12d1773a922fbba5c6ac99731a6e87fea
- sha256sums = 76d83389674da6fcb3ce0635308cd47a949f13361cd29ae2c513847fa5dced1f
+ source = http://openafs.org/dl/1.6.18.1/openafs-1.6.18.1-src.tar.bz2
+ source = 0001-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
+ sha256sums = 503b22ebb57af6af5aec87801ace54209b21f34f0d19843b16c336b66efd48ad
+ sha256sums = e8c1b1ddb49c198d19a29f2b80294084bede252a34768a26da441cbb6173f350
pkgname = openafs-modules
diff --git a/0001-Linux-3.13-Check-return-value-from-bdi_init.patch b/0001-Linux-3.13-Check-return-value-from-bdi_init.patch
deleted file mode 100644
index ee1f6ec81407..000000000000
--- a/0001-Linux-3.13-Check-return-value-from-bdi_init.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 87377a9547443ae41aa6e393129389a765573aa3 Mon Sep 17 00:00:00 2001
-From: Marc Dionne <marc.dionne@your-file-system.com>
-Date: Tue, 3 Dec 2013 14:10:00 -0500
-Subject: [PATCH 1/5] Linux 3.13: Check return value from bdi_init
-
-The use of the bdi_init function now gets a warning because the
-return value is unused and the function is now defined with
-the warn_unused_result attribute.
-
-Assign and check the return value.
-
-Reviewed-on: http://gerrit.openafs.org/10530
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
-(cherry picked from commit ccc5d3f7adceda4d8cf41f04fe02d5cfe376befd)
-
-Change-Id: I2ccd9bbdce396a003030e3e09f9f6d75a1c4fa7c
----
- src/afs/LINUX/osi_vfsops.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c
-index 3936d4d..c222668 100644
---- a/src/afs/LINUX/osi_vfsops.c
-+++ b/src/afs/LINUX/osi_vfsops.c
-@@ -87,6 +87,9 @@ int
- afs_fill_super(struct super_block *sb, void *data, int silent)
- {
- int code = 0;
-+#if defined(HAVE_LINUX_BDI_INIT)
-+ int bdi_init_done = 0;
-+#endif
-
- AFS_GLOCK();
- if (afs_was_mounted) {
-@@ -115,7 +118,10 @@ afs_fill_super(struct super_block *sb, void *data, int silent)
- afs_backing_dev_info = kmalloc(sizeof(struct backing_dev_info), GFP_NOFS);
- memset(afs_backing_dev_info, 0, sizeof(struct backing_dev_info));
- #if defined(HAVE_LINUX_BDI_INIT)
-- bdi_init(afs_backing_dev_info);
-+ code = bdi_init(afs_backing_dev_info);
-+ if (code)
-+ goto out;
-+ bdi_init_done = 1;
- #endif
- #if defined(STRUCT_BACKING_DEV_INFO_HAS_NAME)
- afs_backing_dev_info->name = "openafs";
-@@ -144,11 +150,13 @@ afs_fill_super(struct super_block *sb, void *data, int silent)
- #endif
- #endif
- code = afs_root(sb);
-+out:
- if (code) {
- afs_globalVFS = NULL;
- afs_FlushAllVCaches();
- #if defined(HAVE_LINUX_BDI_INIT)
-- bdi_destroy(afs_backing_dev_info);
-+ if (bdi_init_done)
-+ bdi_destroy(afs_backing_dev_info);
- #endif
- kfree(afs_backing_dev_info);
- module_put(THIS_MODULE);
---
-2.8.3
-
diff --git a/0005-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch b/0001-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
index fe9657df2a27..ba949fcf789b 100644
--- a/0005-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
+++ b/0001-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
@@ -1,7 +1,7 @@
-From b9af471c9ffa2cd8b537c4f391f5b198d7812599 Mon Sep 17 00:00:00 2001
+From 720556bcbc9d51e2d1b4b0fd1f3c399836b67971 Mon Sep 17 00:00:00 2001
From: Joe Gorse <jhgorse@gmail.com>
Date: Thu, 9 Jun 2016 14:11:23 -0400
-Subject: [PATCH 5/5] Linux 4.6: rm PAGE_CACHE_* and page_cache_{get,release}
+Subject: [PATCH] Linux 4.6: rm PAGE_CACHE_* and page_cache_{get,release}
macros
This is an automatic patch generated by Coccinelle (spatch) from:
@@ -292,5 +292,5 @@ index 2696b48..86a9668 100644
return code;
--
-2.8.3
+2.9.0
diff --git a/0002-Linux-4.5-no-highmem-in-symlink-ops.patch b/0002-Linux-4.5-no-highmem-in-symlink-ops.patch
deleted file mode 100644
index e3f3cf6d2025..000000000000
--- a/0002-Linux-4.5-no-highmem-in-symlink-ops.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From fc08da3fd6a93a6de215fc6cb9f3a858dea3bfc0 Mon Sep 17 00:00:00 2001
-From: Benjamin Kaduk <kaduk@mit.edu>
-Date: Sun, 1 May 2016 19:04:45 -0400
-Subject: [PATCH 2/5] Linux 4.5: no highmem in symlink ops
-
-Symlink bodies in the pagecache should not be in highmem, as
-upstream converted in commit 21fc61c73.
-
-Change-Id: I1e4c3c51308df096cdfa4d5e7b16279e275e7f41
----
- acinclude.m4 | 3 +++
- src/afs/LINUX/osi_vnodeops.c | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 4f8e2c0..c8a7ceb 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -1034,6 +1034,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- [#include <linux/kernel.h>
- #include <linux/kthread.h>],
- [kthread_run(NULL, NULL, "test");])
-+ AC_CHECK_LINUX_FUNC([inode_nohighmem],
-+ [#include <linux/fs.h>],
-+ [inode_nohighmem(NULL);])
-
- dnl Consequences - things which get set as a result of the
- dnl above tests
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index 1b99c94..2f753dd 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -3143,6 +3143,9 @@ afs_fill_inode(struct inode *ip, struct vattr *vattr)
-
- } else if (S_ISLNK(ip->i_mode)) {
- ip->i_op = &afs_symlink_iops;
-+#if defined(HAVE_LINUX_INODE_NOHIGHMEM)
-+ inode_nohighmem(ip);
-+#endif
- #if defined(USABLE_KERNEL_PAGE_SYMLINK_CACHE)
- ip->i_data.a_ops = &afs_symlink_aops;
- ip->i_mapping = &ip->i_data;
---
-2.8.3
-
diff --git a/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch b/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch
deleted file mode 100644
index cf8f4b88ecfa..000000000000
--- a/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 97591edd99583f460d61cece34f9e2173ea637fb Mon Sep 17 00:00:00 2001
-From: Chaskiel Grundman <cg2v@andrew.cmu.edu>
-Date: Thu, 5 May 2016 12:35:08 -0400
-Subject: [PATCH 3/5] Linux 4.5: get_link instead of follow_link+put_link
-
-In linux commit 6b255391, the follow_link inode operation was
-replaced by the get_link operation, which is basically the same
-but takes the inode and dentry separately, allowing for the
-possibility of staying in RCU mode.
-
-For now, only support this if page_get_link is available and we are
-using the USABLE_KERNEL_PAGE_SYMLINK_CACHE
-
-The previous test for USABLE_KERNEL_PAGE_SYMLINK_CACHE used a bogus,
-undefined configure variable (ac_cv_linux_kernel_page_follow_link).
-Remove it, as it was not needed
-
-Change-Id: I2d7851d31dd4b1b944b16fad611addb804930eca
----
- acinclude.m4 | 10 +++++++++-
- src/afs/LINUX/osi_vnodeops.c | 4 +++-
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index c8a7ceb..aca1316 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -890,6 +890,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
- AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h])
- AC_CHECK_LINUX_STRUCT([inode_operations], [truncate], [fs.h])
-+ AC_CHECK_LINUX_STRUCT([inode_operations], [get_link], [fs.h])
- AC_CHECK_LINUX_STRUCT([key], [payload.value], [key.h])
- AC_CHECK_LINUX_STRUCT([key_type], [instantiate_prep], [key-type.h])
- AC_CHECK_LINUX_STRUCT([key_type], [match_preparse], [key-type.h])
-@@ -990,6 +991,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- AC_CHECK_LINUX_FUNC([page_follow_link],
- [#include <linux/fs.h>],
- [page_follow_link(0,0);])
-+ AC_CHECK_LINUX_FUNC([page_get_link],
-+ [#include <linux/fs.h>],
-+ [page_get_link(0,0,0);])
- AC_CHECK_LINUX_FUNC([page_offset],
- [#include <linux/pagemap.h>],
- [page_offset(NULL);])
-@@ -1168,11 +1172,15 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
- AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
- fi
-- if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
-+ if test "x$ac_cv_linux_func_page_get_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
- AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
- else
- AC_MSG_WARN([your kernel does not have a usable symlink cache API])
- fi
-+ if test "x$ac_cv_linux_func_page_get_link" != "xyes" -a "x$ac_cv_linux_struct_inode_operations_has_get_link" = "xyes"; then
-+ AC_MSG_ERROR([Your kernel does not use follow_link - not supported without symlink cache API])
-+ exit 1
-+ fi
- :
- fi
- if test "x$enable_linux_d_splice_alias_extra_iput" = xyes; then
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index 2f753dd..00b41ef 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -3108,7 +3108,9 @@ static struct address_space_operations afs_symlink_aops = {
- static struct inode_operations afs_symlink_iops = {
- #if defined(USABLE_KERNEL_PAGE_SYMLINK_CACHE)
- .readlink = page_readlink,
--# if defined(HAVE_LINUX_PAGE_FOLLOW_LINK)
-+# if defined(HAVE_LINUX_PAGE_GET_LINK)
-+ .get_link = page_get_link,
-+# elif defined(HAVE_LINUX_PAGE_FOLLOW_LINK)
- .follow_link = page_follow_link,
- # else
- .follow_link = page_follow_link_light,
---
-2.8.3
-
diff --git a/0004-Linux-4.5-don-t-access-i_mutex-directly.patch b/0004-Linux-4.5-don-t-access-i_mutex-directly.patch
deleted file mode 100644
index 906ba54a9b4d..000000000000
--- a/0004-Linux-4.5-don-t-access-i_mutex-directly.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 60b36c98188a786f1ba71f0e2b0a1b8f7ff0ba2c Mon Sep 17 00:00:00 2001
-From: Benjamin Kaduk <kaduk@mit.edu>
-Date: Sun, 1 May 2016 19:48:40 -0400
-Subject: [PATCH 4/5] Linux 4.5: don't access i_mutex directly
-
-Linux commit 5955102c, in preparation for future work, introduced
-wrapper functions to lock/unlock inode mutexes. This is to
-prepare for converting it to a read-write semaphore, so that
-lookup can be done with only the shared lock held.
-
-Adopt the afs_linux_*lock_inode() functions accordingly, and
-convert afs_linux_fsync() to using those wrappers, since the
-FOP_FSYNC_TAKES_RANGE case appears to be the current case.
-
-Amusingly, afs_linux_*lock_inode() already have a branch to
-handle the case when inode serialization is protected by a
-semaphore; it seems that this is going to come full-circle.
-
-Change-Id: Ia5a194acc559de21808655ef066151a0a3826364
----
- acinclude.m4 | 3 +++
- src/afs/LINUX/osi_compat.h | 8 ++++++--
- src/afs/LINUX/osi_vnodeops.c | 4 ++--
- 3 files changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index aca1316..aa682ea 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -1041,6 +1041,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- AC_CHECK_LINUX_FUNC([inode_nohighmem],
- [#include <linux/fs.h>],
- [inode_nohighmem(NULL);])
-+ AC_CHECK_LINUX_FUNC([inode_lock],
-+ [#include <linux/fs.h>],
-+ [inode_lock(NULL);])
-
- dnl Consequences - things which get set as a result of the
- dnl above tests
-diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h
-index 4d484c1..5268e7e 100644
---- a/src/afs/LINUX/osi_compat.h
-+++ b/src/afs/LINUX/osi_compat.h
-@@ -427,7 +427,9 @@ afs_init_sb_export_ops(struct super_block *sb) {
-
- static inline void
- afs_linux_lock_inode(struct inode *ip) {
--#ifdef STRUCT_INODE_HAS_I_MUTEX
-+#if defined(HAVE_LINUX_INODE_LOCK)
-+ inode_lock(ip);
-+#elif defined(STRUCT_INODE_HAS_I_MUTEX)
- mutex_lock(&ip->i_mutex);
- #else
- down(&ip->i_sem);
-@@ -436,7 +438,9 @@ afs_linux_lock_inode(struct inode *ip) {
-
- static inline void
- afs_linux_unlock_inode(struct inode *ip) {
--#ifdef STRUCT_INODE_HAS_I_MUTEX
-+#if defined(HAVE_LINUX_INODE_LOCK)
-+ inode_unlock(ip);
-+#elif defined(STRUCT_INODE_HAS_I_MUTEX)
- mutex_unlock(&ip->i_mutex);
- #else
- up(&ip->i_sem);
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index 00b41ef..2696b48 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -571,13 +571,13 @@ afs_linux_fsync(struct file *fp, int datasync)
- cred_t *credp = crref();
-
- #if defined(FOP_FSYNC_TAKES_RANGE)
-- mutex_lock(&ip->i_mutex);
-+ afs_linux_lock_inode(ip);
- #endif
- AFS_GLOCK();
- code = afs_fsync(VTOAFS(ip), credp);
- AFS_GUNLOCK();
- #if defined(FOP_FSYNC_TAKES_RANGE)
-- mutex_unlock(&ip->i_mutex);
-+ afs_linux_unlock_inode(ip);
- #endif
- crfree(credp);
- return afs_convert_code(code);
---
-2.8.3
-
diff --git a/PKGBUILD b/PKGBUILD
index 91f501c4e94c..33b07bd075b7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,8 +5,8 @@
pkgname=openafs-modules
_srcname=openafs
-pkgver=1.6.18
-pkgrel=3
+pkgver=1.6.18.1
+pkgrel=1
pkgdesc="Kernel module for OpenAFS"
arch=('i686' 'x86_64' 'armv7h')
url="http://www.openafs.org"
@@ -16,18 +16,10 @@ makedepends=('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-Linux-3.13-Check-return-value-from-bdi_init.patch
- 0002-Linux-4.5-no-highmem-in-symlink-ops.patch
- 0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch
- 0004-Linux-4.5-don-t-access-i_mutex-directly.patch
- 0005-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch)
+ 0001-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch)
install=openafs-modules.install
-sha256sums=('b3c35e7be6b6c86b91e7c699fd015f53c87bc19d1ae8ec3ec9cda6b97327d3b6'
- 'abac60b5ae85a8d9311a13f35d723c63de2049033058736db7b3ef39439c2811'
- '0ae7f199e5e4031beef55c93087c34505701ef8f41fce4c255239bb8b48e9888'
- 'c7403d943f4bd5bb61e47b79c8d5c1258ced77800b2c20a603a4676ae9ee6f8c'
- '88d7ab67b730eeeaef991cb0db8dabf12d1773a922fbba5c6ac99731a6e87fea'
- '76d83389674da6fcb3ce0635308cd47a949f13361cd29ae2c513847fa5dced1f')
+sha256sums=('503b22ebb57af6af5aec87801ace54209b21f34f0d19843b16c336b66efd48ad'
+ 'e8c1b1ddb49c198d19a29f2b80294084bede252a34768a26da441cbb6173f350')
# Heuristic to determine version of installed kernel
# You can modify this if the heuristic fails
@@ -37,14 +29,8 @@ _kernelver=$(cat ${_extramodules}/version)
prepare() {
cd ${srcdir}/${_srcname}-${pkgver}
- # Patches required to build against Linux 4.5
- patch -p1 < ${srcdir}/0001-Linux-3.13-Check-return-value-from-bdi_init.patch
- patch -p1 < ${srcdir}/0002-Linux-4.5-no-highmem-in-symlink-ops.patch
- patch -p1 < ${srcdir}/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch
- patch -p1 < ${srcdir}/0004-Linux-4.5-don-t-access-i_mutex-directly.patch
-
# Patch required to build against Linux 4.6
- patch -p1 < ${srcdir}/0005-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
+ patch -p1 < ${srcdir}/0001-Linux-4.6-rm-PAGE_CACHE_-and-page_cache_-get-release.patch
# Only needed when changes to configure were made
./regen.sh -q