lkml.org 
[lkml]   [2007]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/5] [RFC] New path lookup function (V3)
    Date
    (For list of changes since V2, see end of this email.)

    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 vfs_path_lookup.

    The third patch changes nfsctl.c to use vfs_path_lookup.

    The fourth patch marks link_path_walk static.

    The fifth, and last patch, unexports path_walk because it is no longer
    unnecessary to call it directly, and using the new vfs_path_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 = vfs_path_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


    Changes since V2:

    - renamed path_component_lookup to vfs_path_lookup as it allows lookup of
    any path relative to a dentry/vfsmnt (hch)
    - kernel doc comment for vfs_path_lookup (hch)
    - cleaned up the audit_inode condition (hch)
    - rpc_mount should not be dereferenced directly (trond)
    - make path_walk static (hch)
    - make link_path_walk static (hch)

    -
    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/

    \
     
     \ /
      Last update: 2007-05-06 19:47    [W:0.034 / U:332.980 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site