Whamcloud - gitweb
LU-12477 ldiskfs: last cleanups
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / sles12sp1 / ext4-lookup-dotdot.patch
diff --git a/ldiskfs/kernel_patches/patches/sles12sp1/ext4-lookup-dotdot.patch b/ldiskfs/kernel_patches/patches/sles12sp1/ext4-lookup-dotdot.patch
deleted file mode 100644 (file)
index c6f0371..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Index: linux-3.10.9-200.fc17.x86_64/fs/ext4/namei.c
-===================================================================
---- linux-3.10.9-200.fc17.x86_64.orig/fs/ext4/namei.c
-+++ linux-3.10.9-200.fc17.x86_64/fs/ext4/namei.c
-@@ -1438,6 +1438,33 @@ static struct dentry *ext4_lookup(struct
-                       return ERR_PTR(-EIO);
-               }
-       }
-+      /* ".." shouldn't go into dcache to preserve dcache hierarchy
-+       * otherwise we'll get parent being a child of actual child.
-+       * see bug 10458 for details -bzzz */
-+      if (inode && (dentry->d_name.name[0] == '.' &&
-+                    (dentry->d_name.len == 1 || (dentry->d_name.len == 2 &&
-+                                           dentry->d_name.name[1] == '.')))) {
-+              struct dentry *goal = NULL;
-+
-+              /* first, look for an existing dentry - any one is good */
-+              goal = d_find_any_alias(inode);
-+              if (goal == NULL) {
-+                      spin_lock(&dentry->d_lock);
-+                      /* there is no alias, we need to make current dentry:
-+                       *  a) inaccessible for __d_lookup()
-+                       *  b) inaccessible for iopen */
-+                      J_ASSERT(hlist_unhashed(&dentry->d_u.d_alias));
-+                      dentry->d_flags |= DCACHE_NFSFS_RENAMED;
-+                      /* this is d_instantiate() ... */
-+                      hlist_add_head(&dentry->d_u.d_alias, &inode->i_dentry);
-+                      dentry->d_inode = inode;
-+                      spin_unlock(&dentry->d_lock);
-+              }
-+              if (goal)
-+                      iput(inode);
-+              return goal;
-+      }
-+
-       return d_splice_alias(inode, dentry);
- }