From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: Regression with initramfs and nfsroot (appears to be in the dcache) Date: Thu, 29 Nov 2012 21:33:16 +0000 Message-ID: <20121129213316.GU4939@ZenIV.linux.org.uk> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Patrick McLean Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, Nov 29, 2012 at 11:16:59AM -0800, Patrick McLean wrote: > With 3.6-rc1 and up, when using a (dracut) initramfs with a read-only > nfs root, all accesses to /proc. /sys and /dev return EBUSY. See "[PATCH] Revert "__d_unalias() should refuse to move mountpoints" thread. If you have a convenient reproducer, could you check if the fixes the breakage? If so, we'll need to look into false negatives from nfs_same_file() in there... diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index ce8cb92..55436f5 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -450,7 +450,10 @@ void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry) nfs_refresh_inode(dentry->d_inode, entry->fattr); goto out; } else { - d_drop(dentry); + if (d_invalidate(dentry) != 0) { + WARN_ON(1); + goto out; + } dput(dentry); } }