From: adilger Date: Mon, 14 Mar 2005 17:06:05 +0000 (+0000) Subject: Branch: b1_4 X-Git-Tag: v1_8_0_110~486^7~138 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=9a7dca24f866e03e397290d4304391dd0e54425f;p=fs%2Flustre-release.git Branch: b1_4 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 --- diff --git a/ldiskfs/kernel_patches/patches/iopen-2.6-rhel4.patch b/ldiskfs/kernel_patches/patches/iopen-2.6-rhel4.patch index 1547591..c4706f7 100644 --- a/ldiskfs/kernel_patches/patches/iopen-2.6-rhel4.patch +++ b/ldiskfs/kernel_patches/patches/iopen-2.6-rhel4.patch @@ -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); diff --git a/ldiskfs/kernel_patches/patches/iopen-2.6-suse.patch b/ldiskfs/kernel_patches/patches/iopen-2.6-suse.patch index 4e4bbaa..79ba93f 100644 --- a/ldiskfs/kernel_patches/patches/iopen-2.6-suse.patch +++ b/ldiskfs/kernel_patches/patches/iopen-2.6-suse.patch @@ -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); diff --git a/lustre/kernel_patches/patches/iopen-2.4.19-suse.patch b/lustre/kernel_patches/patches/iopen-2.4.19-suse.patch index c0940cf..3c10d3d 100644 --- a/lustre/kernel_patches/patches/iopen-2.4.19-suse.patch +++ b/lustre/kernel_patches/patches/iopen-2.4.19-suse.patch @@ -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); diff --git a/lustre/kernel_patches/patches/iopen-2.4.20.patch b/lustre/kernel_patches/patches/iopen-2.4.20.patch index dc860ee..4b869a6 100644 --- a/lustre/kernel_patches/patches/iopen-2.4.20.patch +++ b/lustre/kernel_patches/patches/iopen-2.4.20.patch @@ -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); diff --git a/lustre/kernel_patches/patches/iopen-2.4.21-chaos.patch b/lustre/kernel_patches/patches/iopen-2.4.21-chaos.patch index 3bed805..94d8ab9 100644 --- a/lustre/kernel_patches/patches/iopen-2.4.21-chaos.patch +++ b/lustre/kernel_patches/patches/iopen-2.4.21-chaos.patch @@ -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); diff --git a/lustre/kernel_patches/patches/iopen-2.4.21-sles8sp3.patch b/lustre/kernel_patches/patches/iopen-2.4.21-sles8sp3.patch index be0d566..a7aa775 100644 --- a/lustre/kernel_patches/patches/iopen-2.4.21-sles8sp3.patch +++ b/lustre/kernel_patches/patches/iopen-2.4.21-sles8sp3.patch @@ -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); diff --git a/lustre/kernel_patches/patches/iopen-2.6-rhel4.patch b/lustre/kernel_patches/patches/iopen-2.6-rhel4.patch index 1547591..c4706f7 100644 --- a/lustre/kernel_patches/patches/iopen-2.6-rhel4.patch +++ b/lustre/kernel_patches/patches/iopen-2.6-rhel4.patch @@ -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); diff --git a/lustre/kernel_patches/patches/iopen-2.6-suse.patch b/lustre/kernel_patches/patches/iopen-2.6-suse.patch index 4e4bbaa..79ba93f 100644 --- a/lustre/kernel_patches/patches/iopen-2.6-suse.patch +++ b/lustre/kernel_patches/patches/iopen-2.6-suse.patch @@ -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);