Whamcloud - gitweb
Branch: b1_4
authoradilger <adilger>
Mon, 14 Mar 2005 17:06:05 +0000 (17:06 +0000)
committeradilger <adilger>
Mon, 14 Mar 2005 17:06:05 +0000 (17:06 +0000)
Don't attach NFSD_DISCONN dentries in ext3_lookup->iopen_connected_dentry()
to avoid confusing NFSD when run on a Lustre-patched kernel.  This makes
iopen_connected_dentry() behave exactly as d_add(dentry, inode) did for
non-IOPEN mounted filesystems (i.e. everything except the MDS).
b=5698
r=behlendo

ldiskfs/kernel_patches/patches/iopen-2.6-rhel4.patch
ldiskfs/kernel_patches/patches/iopen-2.6-suse.patch
lustre/kernel_patches/patches/iopen-2.4.19-suse.patch
lustre/kernel_patches/patches/iopen-2.4.20.patch
lustre/kernel_patches/patches/iopen-2.4.21-chaos.patch
lustre/kernel_patches/patches/iopen-2.4.21-sles8sp3.patch
lustre/kernel_patches/patches/iopen-2.6-rhel4.patch
lustre/kernel_patches/patches/iopen-2.6-suse.patch

index 1547591..c4706f7 100644 (file)
@@ -195,6 +195,9 @@ Index: linux-stage/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);
index 4e4bbaa..79ba93f 100644 (file)
@@ -202,6 +202,9 @@ Index: linux-2.6.5-sles9/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);
index c0940cf..3c10d3d 100644 (file)
@@ -74,7 +74,7 @@ Index: lum/fs/ext3/iopen.c
 ===================================================================
 --- lum.orig/fs/ext3/iopen.c   2004-03-09 16:46:37.000000000 -0700
 +++ lum/fs/ext3/iopen.c        2004-03-09 16:48:03.000000000 -0700
-@@ -0,0 +1,282 @@
+@@ -0,0 +1,285 @@
 +/*
 + * linux/fs/ext3/iopen.c
 + *
@@ -229,6 +229,9 @@ Index: lum/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);
index dc860ee..4b869a6 100644 (file)
@@ -74,7 +74,7 @@ Index: lum/fs/ext3/iopen.c
 ===================================================================
 --- lum.orig/fs/ext3/iopen.c   2004-03-09 16:46:37.000000000 -0700
 +++ lum/fs/ext3/iopen.c        2004-03-09 16:48:03.000000000 -0700
-@@ -0,0 +1,282 @@
+@@ -0,0 +1,285 @@
 +/*
 + * linux/fs/ext3/iopen.c
 + *
@@ -244,6 +244,9 @@ Index: lum/fs/ext3/iopen.c
 +      if (!goal)
 +              goto do_instantiate;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* Move the goal to the de hash queue - like d_move() */
 +      goal->d_flags &= ~DCACHE_NFSD_DISCONNECTED;
 +      list_del_init(&goal->d_hash);
index 3bed805..94d8ab9 100644 (file)
@@ -74,7 +74,7 @@ Index: linux-ia64/fs/ext3/iopen.c
 ===================================================================
 --- linux-ia64.orig/fs/ext3/iopen.c    2004-03-17 18:02:08.000000000 -0800
 +++ linux-ia64/fs/ext3/iopen.c 2004-03-17 18:10:58.000000000 -0800
-@@ -0,0 +1,282 @@
+@@ -0,0 +1,285 @@
 +/*
 + * linux/fs/ext3/iopen.c
 + *
@@ -229,6 +229,9 @@ Index: linux-ia64/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);
index be0d566..a7aa775 100644 (file)
@@ -74,7 +74,7 @@ Index: kernel-2.4.212l35/fs/ext3/iopen.c
 ===================================================================
 --- kernel-2.4.212l35.orig/fs/ext3/iopen.c     2003-03-27 11:16:05.000000000 -0800
 +++ kernel-2.4.212l35/fs/ext3/iopen.c  2004-05-06 19:48:41.000000000 -0700
-@@ -0,0 +1,282 @@
+@@ -0,0 +1,285 @@
 +/*
 + * linux/fs/ext3/iopen.c
 + *
@@ -229,6 +229,9 @@ Index: kernel-2.4.212l35/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);
index 1547591..c4706f7 100644 (file)
@@ -195,6 +195,9 @@ Index: linux-stage/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);
index 4e4bbaa..79ba93f 100644 (file)
@@ -202,6 +202,9 @@ Index: linux-2.6.5-sles9/fs/ext3/iopen.c
 +      if (!inode)
 +              goto do_rehash;
 +
++      if (!test_opt(inode->i_sb, IOPEN))
++              goto do_instantiate;
++
 +      /* preferrably return a connected dentry */
 +      list_for_each(lp, &inode->i_dentry) {
 +              tmp = list_entry(lp, struct dentry, d_alias);