Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756095AbXLGSqh (ORCPT ); Fri, 7 Dec 2007 13:46:37 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752962AbXLGSq2 (ORCPT ); Fri, 7 Dec 2007 13:46:28 -0500 Received: from pat.uio.no ([129.240.10.15]:59385 "EHLO pat.uio.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752954AbXLGSq1 (ORCPT ); Fri, 7 Dec 2007 13:46:27 -0500 Subject: Re: 2.6.24-rc3-git4 NFS crossmnt regression From: Trond Myklebust To: Shane Cc: Andrew Morton , linux-kernel@vger.kernel.org, "J. Bruce Fields" , "Rafael J. Wysocki" In-Reply-To: References: <20071207040219.e231cbc7.akpm@linux-foundation.org> Content-Type: multipart/mixed; boundary="=-IBupBxkFjx7YOD4mPYpk" Date: Fri, 07 Dec 2007 13:46:19 -0500 Message-Id: <1197053179.7532.23.camel@heimdal.trondhjem.org> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 X-UiO-Resend: resent X-UiO-ClamAV-Virus: No X-UiO-Spam-info: not spam, SpamAssassin (score=-0.4, required=5.0, autolearn=disabled, AWL=-0.376) X-UiO-Scanned: 9B054B7B141D9B0B4A1601B1B4BFDEBB3291D1F2 X-UiO-SPAM-Test: remote_host: 129.240.10.9 spam_score: -3 maxlevel 200 minaction 2 bait 0 mail/h: 278 total 5635043 max/h 8345 blacklist 0 greylist 0 ratelimit 0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3070 Lines: 94 --=-IBupBxkFjx7YOD4mPYpk Content-Type: text/plain Content-Transfer-Encoding: 7bit On Fri, 2007-12-07 at 13:14 -0500, Shane wrote: > On Dec 7, 2007 7:02 AM, Andrew Morton wrote: > ... > > > 2.6.24-rc3-git1 is last known good kernel. The problem also exists > > > with the latest snap 2.6.24-rc4-git4. NFS server is 2.6.23-rc9 and > > > is unchanged. > > > > hm, there have been no nfs changes since 2.6.24-rc4. > > Ok, but the problem seems to have appeared before 2.6.24-rc4. > > > > It is easily reproducible here, hopefully for the person who > > > knows how to debug it too :) > > > > > > > I guess a full set of the commands which you typed to reproduce this would > > help. > > Server is 2.6.23-rc9 and is exporting: > > /dirA/dirB > 10.10.20.0/255.255.255.0(rw,async,no_root_squash,no_subtree_check,insecure,crossmnt) > /dirA/dirB/dirC > 10.10.20.0/255.255.255.0(rw,async,no_root_squash,no_subtree_check,insecure) > /dirA/dirB/dirD > 10.10.20.0/255.255.255.0(rw,async,no_root_squash,no_subtree_check,insecure) > > The NFS client (Core2 SMP) 2.6.24-rc3-git4: > > NFS-server:/dirA/dirB /dirA/dirB nfs > auto,rsize=16384,wsize=16384,hard,intr,users,exec,nfsvers=3,tcp,nolock,actimeo=0 > > Then on the client when the new kernel has booted: > > ls /dirA/dirB --> normal listing > ls /dirA/dirB/dirC --> Stale NFS file handle > ls /dirA/dirB/dirD --> Stale NFS file handle > > I will do a few more builds/boots and check -rc3-git2 and -rc3-git3. This problem has already been reported. The fix (which I'm planning on sending to Linus soon) is appended. Cheers Trond --=-IBupBxkFjx7YOD4mPYpk Content-Disposition: inline; filename=linux-2.6.24-001-fix_submounts.dif Content-Type: message/rfc822; name=linux-2.6.24-001-fix_submounts.dif From: Trond Myklebust Date: Subject: NFS: Fix NFS mountpoint crossing... Message-Id: <1197053179.7532.24.camel@heimdal.trondhjem.org> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit The check that was added to nfs_xdev_get_sb() to work around broken servers, works fine for NFSv2, but causes mountpoint crossing on NFSv3 to always return ESTALE. Signed-off-by: Trond Myklebust --- fs/nfs/super.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 2426e71..ea92920 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -1475,7 +1475,7 @@ static int nfs_xdev_get_sb(struct file_system_type *fs_type, int flags, error = PTR_ERR(mntroot); goto error_splat_super; } - if (mntroot->d_inode->i_op != &nfs_dir_inode_operations) { + if (mntroot->d_inode->i_op != server->nfs_client->rpc_ops->dir_inode_ops) { dput(mntroot); error = -ESTALE; goto error_splat_super; --=-IBupBxkFjx7YOD4mPYpk-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/