Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sun, 18 Nov 2001 23:02:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sun, 18 Nov 2001 23:02:27 -0500 Received: from tone.orchestra.cse.unsw.EDU.AU ([129.94.242.28]:49623 "HELO tone.orchestra.cse.unsw.EDU.AU") by vger.kernel.org with SMTP id ; Sun, 18 Nov 2001 23:02:17 -0500 From: Neil Brown To: Alexander Viro Date: Mon, 19 Nov 2001 15:02:40 +1100 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15352.33888.506871.191768@notabene.cse.unsw.edu.au> Cc: linux-kernel@vger.kernel.org Subject: Re: Devlinks. Code. (Dcache abuse?) In-Reply-To: message from Alexander Viro on Friday November 16 In-Reply-To: <15348.58752.207182.488419@notabene.cse.unsw.edu.au> X-Mailer: VM 6.72 under Emacs 20.7.2 X-face: [Gw_3E*Gng}4rRrKRYotwlE?.2|**#s9D > > On Fri, 16 Nov 2001, Neil Brown wrote: > > > + if (!(nd->mnt->mnt_flags & MNT_NODEV) > > + && dentry->d_inode > > + && (dentry->d_inode->i_mode & S_ISVTX)) { > > + dentry = devlink_find(dentry, link); > > You are breaking vfsmount refcounting. Badly. I looked, and I cannot see it. I never change the refcound on any vfsmount, nor to I make or destroy any references to any vfsmount. In this piece of code we don't even own a reference to "dentry" (the caller does) so assigning over it isn't a problem either. About the only thing that might be a bit odd here is that we change nd->dentry a few lines later without changing nd->mnt. But the new dentry is always in the same dentry tree (though it is in owned by a different filesystem). Would you care to give a few more details? NeilBrown - 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/