summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO12
-rw-r--r--0001-Linux-4.10-have_submounts-is-gone.patch99
-rw-r--r--PKGBUILD13
3 files changed, 9 insertions, 115 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3f67108b8991..0bf3db8af378 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Tue Feb 28 15:49:13 UTC 2017
+# Sat Apr 15 09:11:25 UTC 2017
pkgbase = openafs-modules
pkgdesc = Kernel module for OpenAFS
- pkgver = 1.6.20.1
- pkgrel = 2
+ pkgver = 1.6.20.2
+ pkgrel = 1
url = http://www.openafs.org
install = openafs-modules.install
arch = i686
@@ -15,10 +15,8 @@ pkgbase = openafs-modules
conflicts = openafs-features-libafs
conflicts = openafs<1.6.6-2
options = !emptydirs
- source = http://openafs.org/dl/1.6.20.1/openafs-1.6.20.1-src.tar.bz2
- source = 0001-Linux-4.10-have_submounts-is-gone.patch
- sha256sums = dc869eecf6c81949d3dd2021eaf87118ef9b90ec5012a35f64836a02a58a8826
- sha256sums = 48efa08f0c384df84ce114f418a2db8607ab3e4f32bbcfd60ef54b8c1bae2e94
+ source = http://openafs.org/dl/1.6.20.2/openafs-1.6.20.2-src.tar.bz2
+ sha256sums = 50234820c3da9752d2ca05fb7e83b7dc5c96a0e96a0b875ebc7ae3c835607614
pkgname = openafs-modules
diff --git a/0001-Linux-4.10-have_submounts-is-gone.patch b/0001-Linux-4.10-have_submounts-is-gone.patch
deleted file mode 100644
index 429a1126dc92..000000000000
--- a/0001-Linux-4.10-have_submounts-is-gone.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 20fd9eadba0b46033571debc8927f29fc1b6c246 Mon Sep 17 00:00:00 2001
-From: Mark Vitale <mvitale@sinenomine.net>
-Date: Wed, 7 Dec 2016 11:11:45 -0500
-Subject: [PATCH] Linux 4.10: have_submounts is gone
-
-Linux commit f74e7b33c37e vfs: remove unused have_submounts() function
-(v4.10-rc2) removes have_submounts from the tree after providing a
-replacement (path_has_submounts) for its last in-tree caller, autofs.
-
-However, it turns out that OpenAFS is better off not using the new
-path_has_submounts. Instead, OpenAFS could/should have stopped using
-have_submounts() much earlier, back in Linux v3.18 when d_invalidate
-became void. At that time, most in-tree callers of have_submounts had
-already been converted to use check_submounts_and_drop back in v3.12.
-At v3.18, a series of commits modified check_submounts_and_drop to
-automatically remove child submounts (instead of returning -EBUSY if a
-submount was detected), then subsumed it into d_invalidate. The end
-result was that VFS now implicitly handles much of the housekeeping
-previously called explicitly by the various filesystem d_revalidate
-routines:
-- shrink_dcache_parent
-- check_submounts_and_drop
-- d_drop
-- d_invalidate
-All in-tree filesystem d_revalidate routines were updated to take
-advantage of this new VFS support.
-
-Modify afs_linux_dentry_revalidate to no longer perform any special
-handling for invalid dentries when D_INVALIDATE_IS_VOID. Instead, allow
-our VFS caller to properly clean up any invalid dentry when we return 0.
-
-Reviewed-on: https://gerrit.openafs.org/12506
-Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
-(cherry picked from commit 789319bf0f2b26ad67995f8cbe88cee87a1bbdc0)
-
-Change-Id: I7ed22338e7896f69a204be78ed0a4f6136a3dab8
----
- src/afs/LINUX/osi_vnodeops.c | 27 ++++++++++++++++++++-------
- 1 file changed, 20 insertions(+), 7 deletions(-)
-
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index 4a8f0e9dc..816cdddd9 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -1318,6 +1318,24 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags)
-
- good_dentry:
- valid = 1;
-+ goto done;
-+
-+ bad_dentry:
-+ valid = 0;
-+#ifndef D_INVALIDATE_IS_VOID
-+ /* When (v3.18) d_invalidate was converted to void, it also started
-+ * being called automatically from revalidate, and automatically
-+ * handled:
-+ * - shrink_dcache_parent
-+ * - automatic detach of submounts
-+ * - d_drop
-+ * Therefore, after that point, OpenAFS revalidate logic no longer needs
-+ * to do any of those things itself for invalid dentry structs. We only need
-+ * to tell VFS it's invalid (by returning 0), and VFS will handle the rest.
-+ */
-+ if (have_submounts(dp))
-+ valid = 1;
-+#endif
-
- done:
- /* Clean up */
-@@ -1328,6 +1346,7 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags)
- if (credp)
- crfree(credp);
-
-+#ifndef D_INVALIDATE_IS_VOID
- if (!valid) {
- /*
- * If we had a negative lookup for the name we want to forcibly
-@@ -1340,15 +1359,9 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags)
- } else
- d_invalidate(dp);
- }
--
-+#endif
- return valid;
-
-- bad_dentry:
-- if (have_submounts(dp))
-- valid = 1;
-- else
-- valid = 0;
-- goto done;
- }
-
- static void
---
-2.12.0
-
diff --git a/PKGBUILD b/PKGBUILD
index 699a716230e0..dc8496fdd46c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,8 +5,8 @@
pkgname=openafs-modules
_srcname=openafs
-pkgver=1.6.20.1
-pkgrel=2
+pkgver=1.6.20.2
+pkgrel=1
pkgdesc="Kernel module for OpenAFS"
arch=('i686' 'x86_64' 'armv7h')
url="http://www.openafs.org"
@@ -15,11 +15,9 @@ depends=('openafs')
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-4.10-have_submounts-is-gone.patch)
+source=(http://openafs.org/dl/${pkgver}/${_srcname}-${pkgver}-src.tar.bz2)
install=openafs-modules.install
-sha256sums=('dc869eecf6c81949d3dd2021eaf87118ef9b90ec5012a35f64836a02a58a8826'
- '48efa08f0c384df84ce114f418a2db8607ab3e4f32bbcfd60ef54b8c1bae2e94')
+sha256sums=('50234820c3da9752d2ca05fb7e83b7dc5c96a0e96a0b875ebc7ae3c835607614')
# Heuristic to determine version of installed kernel
# You can modify this if the heuristic fails
@@ -29,9 +27,6 @@ _kernelver=$(cat ${_extramodules}/version)
prepare() {
cd ${srcdir}/${_srcname}-${pkgver}
- # add upstream patch for kernel 4.10
- patch -p1 -i "${srcdir}"/0001-Linux-4.10-have_submounts-is-gone.patch
-
# Only needed when changes to configure were made
# ./regen.sh -q
}