lkml.org 
[lkml]   [2007]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [patch 09/10] Use struct path in fs_struct
    Date
    On Friday 28 September 2007 20:42, Christoph Hellwig wrote:
    > __d_path should probably switch to taking a struct path * aswell.

    Indeed, it now easily can. Here we go...


    One less parameter to __d_path

    All callers to __d_path pass the dentry and vfsmount of a struct
    path to __d_path. Pass the struct path directly, instead.

    Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

    Index: linux-2.6/fs/dcache.c
    ===================================================================
    --- linux-2.6.orig/fs/dcache.c
    +++ linux-2.6/fs/dcache.c
    @@ -1781,9 +1781,8 @@ shouldnt_be_hashed:
    *
    * "buflen" should be positive. Caller holds the dcache_lock.
    */
    -static char * __d_path( struct dentry *dentry, struct vfsmount *vfsmnt,
    - struct dentry *root, struct vfsmount *rootmnt,
    - char *buffer, int buflen)
    +static char * __d_path(struct dentry *dentry, struct vfsmount *vfsmnt,
    + struct path *root, char *buffer, int buflen)
    {
    char * end = buffer+buflen;
    char * retval;
    @@ -1808,7 +1807,7 @@ static char * __d_path( struct dentry *d
    for (;;) {
    struct dentry * parent;

    - if (dentry == root && vfsmnt == rootmnt)
    + if (dentry == root->dentry && vfsmnt == root->mnt)
    break;
    if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
    /* Global root? */
    @@ -1870,7 +1869,7 @@ char * d_path(struct dentry *dentry, str
    root = *path_get(&current->fs->root);
    read_unlock(&current->fs->lock);
    spin_lock(&dcache_lock);
    - res = __d_path(dentry, vfsmnt, root.dentry, root.mnt, buf, buflen);
    + res = __d_path(dentry, vfsmnt, &root, buf, buflen);
    spin_unlock(&dcache_lock);
    path_put(&root);
    return res;
    @@ -1936,8 +1935,7 @@ asmlinkage long sys_getcwd(char __user *
    unsigned long len;
    char * cwd;

    - cwd = __d_path(pwd.dentry, pwd.mnt, root.dentry, root.mnt,
    - page, PAGE_SIZE);
    + cwd = __d_path(pwd.dentry, pwd.mnt, &root, page, PAGE_SIZE);
    spin_unlock(&dcache_lock);

    error = PTR_ERR(cwd);
    -
    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-09-28 22:41    [W:0.025 / U:0.552 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site