Index: trunk/server/common/patches/openafs-d_drop.patch
===================================================================
--- trunk/server/common/patches/openafs-d_drop.patch	(revision 2632)
+++ 	(revision )
@@ -1,18 +1,0 @@
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index fa0ad91..6059add 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -1198,10 +1198,9 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags)
-     if (credp)
- 	crfree(credp);
- 
--    if (!valid) {
--	shrink_dcache_parent(dp);
--	d_drop(dp);
--    }
-+    if (!valid)
-+	d_invalidate(dp);
-+
-     return valid;
- 
-   bad_dentry:
Index: trunk/server/common/patches/openafs-revert-d_drop-new-file.patch
===================================================================
--- trunk/server/common/patches/openafs-revert-d_drop-new-file.patch	(revision 2633)
+++ trunk/server/common/patches/openafs-revert-d_drop-new-file.patch	(revision 2633)
@@ -0,0 +1,51 @@
+From 097b5d31bcc325c7e33b1dcdf586c7b77bd00cbe Mon Sep 17 00:00:00 2001
+From: Anders Kaseorg <andersk@mit.edu>
+Date: Sun, 12 Oct 2014 22:21:40 -0400
+Subject: [PATCH] Revert "LINUX: Drop dentry if lookup returns new file" and
+ log differences
+
+This reverts commit 81f1814b566cb3b1cda97be4c48b9788cd7addd0, and adds
+a warning message whenever it would have taken effect on a directory.
+
+Change-Id: I60e3a5feb49329b07c07b09edeb4b3c416faaac1
+---
+ src/afs/LINUX/osi_vnodeops.c | 22 +++++++++++++++-------
+ 1 file changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
+index 2a8253e..6f0bbfb 100644
+--- a/src/afs/LINUX/osi_vnodeops.c
++++ b/src/afs/LINUX/osi_vnodeops.c
+@@ -1245,14 +1245,22 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags)
+ 	    code = afs_lookup(pvcp, (char *)dp->d_name.name, &tvc, credp);
+ 	    if (!tvc || tvc != vcp) {
+ 		dput(parent);
+-		/* Force unhash; the name doesn't point to this file
+-		 * anymore. */
+-		force_drop = 1;
+-		if (code && code != ENOENT) {
+-		    /* ...except if we couldn't perform the actual lookup,
+-		     * we don't know if the name points to this file or not. */
+-		    force_drop = 0;
++		/* Force unhash if name is known not to exist. */
++		if (code == ENOENT)
++		    force_drop = 1;
++
++		if (code == 0) {
++		    /* As of http://gerrit.openafs.org/11358, upstream
++		     * also sets force_drop = 1 in the code == 0 case,
++		     * but that seems to exacerbate the getcwd()
++		     * ENOENT problem. */
++		    if (dp->d_inode && S_ISDIR(dp->d_inode->i_mode)) {
++			char buf[256];
++			char *path = dentry_path_raw(dp, buf, sizeof(buf));
++			pr_warn("openafs: Rescued directory /afs/%s from force_drop\n", IS_ERR(path) ? "(error)" : path);
++		    }
+ 		}
++
+ 		goto bad_dentry;
+ 	    }
+ 
+-- 
+2.1.2
+
Index: trunk/server/fedora/specs/openafs.spec.patch
===================================================================
--- trunk/server/fedora/specs/openafs.spec.patch	(revision 2632)
+++ trunk/server/fedora/specs/openafs.spec.patch	(revision 2633)
@@ -10,5 +10,5 @@
  %{!?fedorakmod: %define fedorakmod 1}
  %{!?build_dkmspkg: %define build_dkmspkg 1}
-@@ -249,9 +249,15 @@
+@@ -249,9 +249,16 @@
  %if %{build_modules}
  BuildRequires: kernel-devel
@@ -21,4 +21,5 @@
 +Patch1002: openafs-systemd-crond.patch
 +Patch1003: openafs-systemd-csdb.patch
++Patch1004: openafs-revert-d_drop-new-file.patch
 +%define _default_patch_fuzz 2
 +
@@ -26,5 +27,5 @@
  Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
  Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar.bz2
-@@ -331,6 +337,7 @@
+@@ -331,6 +338,7 @@
  %if %{build_userspace}
  
@@ -34,5 +35,5 @@
  %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
  Requires: systemd-units
-@@ -382,6 +389,7 @@
+@@ -382,6 +390,7 @@
  %package -n dkms-%{name}
  Summary:        DKMS-ready kernel source for AFS distributed filesystem
@@ -42,5 +43,5 @@
  %if %{fedorakmod}
  Provides: %{name}-kmod = %{version}
-@@ -403,6 +411,7 @@
+@@ -403,6 +412,7 @@
  
  %if %{build_authlibs}
@@ -50,5 +51,5 @@
  Group: Networking/Filesystems
  
-@@ -419,6 +428,7 @@
+@@ -419,6 +429,7 @@
  %endif
  
@@ -58,5 +59,5 @@
  Requires: openafs-authlibs = %{version}-%{release}
  %endif
-@@ -437,6 +447,7 @@
+@@ -437,6 +448,7 @@
  libraries.
  
@@ -66,5 +67,5 @@
  Group: Development/Filesystems
  Requires: openafs = %{version}-%{release}
-@@ -466,6 +477,7 @@
+@@ -466,6 +478,7 @@
  administrators.
  
@@ -74,5 +75,5 @@
  Group: Networking/Filesystems
  Provides: openafs-kernel = %{version}
-@@ -515,6 +527,7 @@
+@@ -515,6 +528,7 @@
  
  %if %{krb5support}
@@ -82,5 +83,5 @@
  Requires: openafs = %{version}
  Group: Networking/Filesystems
-@@ -541,7 +554,7 @@
+@@ -541,7 +555,7 @@
  %if %{build_modules}
  
@@ -91,5 +92,5 @@
  %else
  
-@@ -698,6 +711,11 @@
+@@ -698,6 +712,12 @@
  #%setup -q -n %{srcdir}
  %setup -q -b 1 -n %{srcdir}
@@ -99,9 +100,10 @@
 +%patch1002 -p1 -b .systemd-crond
 +%patch1003 -p1 -b .systemd-csdb
++%patch1004 -p1 -b .revert-d_drop-new-file
 +
  ##############################################################################
  #
  # building
-@@ -871,6 +889,8 @@
+@@ -871,6 +891,8 @@
  %endif
  %endif
@@ -112,5 +114,5 @@
         --prefix=%{_prefix} \
         --libdir=%{_libdir} \
-@@ -1267,6 +1287,13 @@
+@@ -1267,6 +1289,13 @@
  rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
  rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so.*
