LWN.net Logo

Split up struct nameidata

From:  Andreas Gruenbacher <agruen@suse.de>
To:  Christoph Hellwig <hch@infradead.org>
Subject:  Re: [RFC 01/10] Split up struct nameidata
Date:  Fri, 10 Aug 2007 16:42:16 +0200
Message-ID:  <20070810142208.827949199@suse.de>
Cc:  linux-kernel@vger.kernel.org, John Johansen <jjohansen@suse.de>, Jan Blunck <jblunck@suse.de>, Erez Zadok <ezk@cs.sunysb.edu>, Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Archive-link:  Article, Thread

On Wed, 08 August 2007, Christoph Hellwig wrote:
> On Wed, Aug 08, 2007 at 07:16:23PM +0200, Andreas Gruenbacher wrote:
> > Split up struct nameidata into struct vfs_lookup with the lookup result
> > and intent and the remaining fields for performing an actual lookup.
> 
> Looks good as a start, but please don't put a struct path in there,
> as the vfsmount will go away from the lookup intent as soon as we have
> a new inode operation for atomic create + open, and not having it in the
> struct path will make that removal a lot less painfull.

Removing the vfsmount from struct vfs_intent sounds like a bad idea to
me. (dentry, vfsmount) pairs should be kept together; this makes it much
more obvious what's going on.

The idea of struct vfs_lookup is not a filesystem level abstraction and
information hiding mechanism, it is to be able to pass on a lookup
result to the vfs more easily. The vfsmount is definitely part of that
result. Cleaning up atomic create + open should be mostly independent of
that.

Attached are patches that introduce pathput() and pathget(). Those are
further cleanups which depend on the struct path in the nameidata /
vfs_lookup.

Thanks,
Andreas


Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds