linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] [RFC] New path lookup function
@ 2007-05-05 23:09 Josef 'Jeff' Sipek
  2007-05-05 23:09 ` [PATCH 1/4] fs: Introduce path_component_lookup Josef 'Jeff' Sipek
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Josef 'Jeff' Sipek @ 2007-05-05 23:09 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-fsdevel, hch, akpm, viro, Trond.Myklebust, neilb, mhalcrow

Stackable file systems, among others, frequently need to lookup paths or
path components starting from an arbitrary point in the namespace
(identified by a dentry and a vfsmount).  Currently, such file systems use
lookup_one_len, which is frowned upon [1] as it does not pass the lookup
intent along; not passing a lookup intent, for example, can trigger BUG_ON's
when stacking on top of NFSv4.

The first patch introduces a new lookup function to allow lookup starting
from an arbitrary point in the namespace.  This approach has been suggested
by Christoph Hellwig [2].

The second patch changes sunrpc to use path_component_lookup.

The third patch changes nfsctl.c to use path_component_lookup.

The fourth, and last patch, unexports path_walk because it is no longer
unnecessary to call it directly, and using the new path_component_lookup is
cleaner.

For example, the following snippet of code, looks up "some/path/component"
in a directory pointed to by parent_{dentry,vfsmnt}:

err = path_component_lookup(parent_dentry, parent_vfsmnt,
			    "some/path/component", 0, &nd);
if (!err) {
	/* exits */

	...

	/* once done, release the references */
	path_release(&nd);
} else if (err == -ENOENT) {
	/* doesn't exist */
} else {
	/* other error */
}

VFS functions such as lookup_create can be used on the nameidata structure
to pass the create intent to the file system.

Currently, there is no easy way to pass the LOOKUP_OPEN intent.  The proper
way would be to call open_namei.

We'd like to get comments about what's necessary to make stackable file
systems do lookups right: this includes potential changes to open_namei.

Josef 'Jeff' Sipek.

[1] http://lkml.org/lkml/2007/3/9/95
[2] http://lkml.org/lkml/2007/5/4/51


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-05-06 14:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-05 23:09 [PATCH 0/4] [RFC] New path lookup function Josef 'Jeff' Sipek
2007-05-05 23:09 ` [PATCH 1/4] fs: Introduce path_component_lookup Josef 'Jeff' Sipek
2007-05-06 11:14   ` Christoph Hellwig
2007-05-05 23:09 ` [PATCH 2/4] sunrpc: Use path_component_lookup Josef 'Jeff' Sipek
2007-05-05 23:52   ` Trond Myklebust
2007-05-06  0:52     ` [PATCH 1/1] " Josef 'Jeff' Sipek
2007-05-06 14:46       ` Trond Myklebust
2007-05-05 23:09 ` [PATCH 3/4] nfsctl: " Josef 'Jeff' Sipek
2007-05-05 23:09 ` [PATCH 4/4] fs: Remove path_walk export Josef 'Jeff' Sipek
2007-05-06 11:15   ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).