lkml.org 
[lkml]   [2007]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 08/10] Introduce path_get()
    This introduces the symmetric function to path_put() for getting a reference
    to the dentry and vfsmount of a struct path in the right order.

    Signed-off-by: Jan Blunck <jblunck@suse.de>
    Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
    ---
    fs/namei.c | 17 +++++++++++++++--
    include/linux/path.h | 1 +
    2 files changed, 16 insertions(+), 2 deletions(-)

    Index: b/fs/namei.c
    ===================================================================
    --- a/fs/namei.c
    +++ b/fs/namei.c
    @@ -348,6 +348,20 @@ int deny_write_access(struct file * file
    }

    /**
    + * path_get - get a reference to a path
    + * @path: path to get the reference to
    + *
    + * Given a path increment the reference count to the dentry and the vfsmount.
    + */
    +struct path *path_get(struct path *path)
    +{
    + mntget(path->mnt);
    + dget(path->dentry);
    + return path;
    +}
    +EXPORT_SYMBOL(path_get);
    +
    +/**
    * path_put - put a reference to a path
    * @path: path to put the reference to
    *
    @@ -1145,8 +1159,7 @@ static int fastcall do_path_lookup(int d
    if (retval)
    goto fput_fail;

    - nd->path.mnt = mntget(file->f_path.mnt);
    - nd->path.dentry = dget(dentry);
    + nd->path = *path_get(&file->f_path);

    fput_light(file, fput_needed);
    }
    Index: b/include/linux/path.h
    ===================================================================
    --- a/include/linux/path.h
    +++ b/include/linux/path.h
    @@ -9,6 +9,7 @@ struct path {
    struct dentry *dentry;
    };

    +extern struct path *path_get(struct path *);
    extern void path_put(struct path *);

    #endif /* _LINUX_PATH_H */
    --

    -
    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-27 16:15    [W:0.020 / U:2.712 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site