From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [WTF] ... is going on with current->fs->{root,mnt} accesses in pohmelfs Date: Wed, 10 Feb 2010 10:24:22 +0000 Message-ID: <20100210102422.GM30031@ZenIV.linux.org.uk> References: <20100210100428.GL30031@ZenIV.linux.org.uk> <20100210101246.GA3509@ioremap.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Evgeniy Polyakov Return-path: Content-Disposition: inline In-Reply-To: <20100210101246.GA3509@ioremap.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Wed, Feb 10, 2010 at 01:12:46PM +0300, Evgeniy Polyakov wrote: > On Wed, Feb 10, 2010 at 10:04:28AM +0000, Al Viro (viro@ZenIV.linux.org.uk) wrote: > > a) pohmelfs_construct_path_string() will do interesting things if you > > call it while chrooted into jail and pohmelfs mounted deeper in that > > jail. Try it. > > Should it walk upto mountpoint? It will happily give you path from absolute root to root of chroot jail + path from fs root to your dentry. Which is probably not what you want. > > b) just why do we care about root of chroot jail in pohmelfs_path_length()? > > Not to mention anything else, current->fs->root/mnt may be changed under > > you if you share current->fs with another thread, but even aside of that, > > why does filesystem care about chroot of caller at all? > > > > What's going on there? > > It tries to construct a full path upto mountpoint. Effectively it should > do similar to non-exported dentry_path() things. There is a race between > getting buffer size and filling with the actual path, but we take care > about that by restarting if needed. To mountpoint or to fs root? And what's going on with d_find_alias()? AFAICS, you are doing that for regular files as well as directories, and you do support link(2) in there, so dentry (and path) obtained from that will be random.