diff options
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/fs/namei.c b/fs/namei.c index 024993535b6f..a6575ca9f9d7 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -363,6 +363,19 @@ int deny_write_access(struct file * file) | |||
363 | } | 363 | } |
364 | 364 | ||
365 | /** | 365 | /** |
366 | * path_get - get a reference to a path | ||
367 | * @path: path to get the reference to | ||
368 | * | ||
369 | * Given a path increment the reference count to the dentry and the vfsmount. | ||
370 | */ | ||
371 | void path_get(struct path *path) | ||
372 | { | ||
373 | mntget(path->mnt); | ||
374 | dget(path->dentry); | ||
375 | } | ||
376 | EXPORT_SYMBOL(path_get); | ||
377 | |||
378 | /** | ||
366 | * path_put - put a reference to a path | 379 | * path_put - put a reference to a path |
367 | * @path: path to put the reference to | 380 | * @path: path to put the reference to |
368 | * | 381 | * |
@@ -1160,8 +1173,8 @@ static int do_path_lookup(int dfd, const char *name, | |||
1160 | if (retval) | 1173 | if (retval) |
1161 | goto fput_fail; | 1174 | goto fput_fail; |
1162 | 1175 | ||
1163 | nd->path.mnt = mntget(file->f_path.mnt); | 1176 | nd->path = file->f_path; |
1164 | nd->path.dentry = dget(dentry); | 1177 | path_get(&file->f_path); |
1165 | 1178 | ||
1166 | fput_light(file, fput_needed); | 1179 | fput_light(file, fput_needed); |
1167 | } | 1180 | } |