From: Jan Blunck * Add path_put() functions for releasing a reference to the dentry and vfsmount of a struct path in the right order * Switch from path_release(nd) to path_put(&nd->path) * Rename dput_path() to path_put_conditional() Signed-off-by: Jan Blunck Signed-off-by: Andreas Gruenbacher Acked-by: Christoph Hellwig Signed-off-by: Andrew Morton --- fs/unionfs/main.c | 2 +- fs/unionfs/super.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff -puN fs/unionfs/main.c~introduce-path_put-unionfs fs/unionfs/main.c --- a/fs/unionfs/main.c~introduce-path_put-unionfs +++ a/fs/unionfs/main.c @@ -367,7 +367,7 @@ static int parse_dirs_option(struct supe if (err) { printk(KERN_ERR "unionfs: lower directory " "'%s' is not a valid branch\n", name); - path_release(&nd); + path_put(&nd.path); goto out; } diff -puN fs/unionfs/super.c~introduce-path_put-unionfs fs/unionfs/super.c --- a/fs/unionfs/super.c~introduce-path_put-unionfs +++ a/fs/unionfs/super.c @@ -217,7 +217,7 @@ static noinline int do_remount_mode_opti if (nd.path.mnt == new_lower_paths[idx].mnt && nd.path.dentry == new_lower_paths[idx].dentry) break; - path_release(&nd); /* no longer needed */ + path_put(&nd.path); /* no longer needed */ if (idx == cur_branches) { err = -ENOENT; /* err may have been reset above */ printk(KERN_ERR "unionfs: branch \"%s\" " @@ -260,7 +260,7 @@ static noinline int do_remount_del_optio if (nd.path.mnt == new_lower_paths[idx].mnt && nd.path.dentry == new_lower_paths[idx].dentry) break; - path_release(&nd); /* no longer needed */ + path_put(&nd.path); /* no longer needed */ if (idx == cur_branches) { printk(KERN_ERR "unionfs: branch \"%s\" " "not found\n", optarg); @@ -279,7 +279,7 @@ static noinline int do_remount_del_optio * new_data and new_lower_paths one to the left. Finally, adjust * cur_branches. */ - pathput(&new_lower_paths[idx]); + path_put(&new_lower_paths[idx]); if (idx < cur_branches - 1) { /* if idx==cur_branches-1, we delete last branch: easy */ @@ -344,7 +344,7 @@ static noinline int do_remount_add_optio if (nd.path.mnt == new_lower_paths[idx].mnt && nd.path.dentry == new_lower_paths[idx].dentry) break; - path_release(&nd); /* no longer needed */ + path_put(&nd.path); /* no longer needed */ if (idx == cur_branches) { printk(KERN_ERR "unionfs: branch \"%s\" " "not found\n", optarg); @@ -387,7 +387,7 @@ found_insertion_point: if (err) { printk(KERN_ERR "unionfs: lower directory " "\"%s\" is not a valid branch\n", optarg); - path_release(&nd); + path_put(&nd.path); goto out; } @@ -800,7 +800,7 @@ out_release: /* no need to cleanup/release anything in tmp_data */ if (tmp_lower_paths) for (i = 0; i < new_branches; i++) - pathput(&tmp_lower_paths[i]); + path_put(&tmp_lower_paths[i]); out_free: kfree(tmp_lower_paths); kfree(tmp_data); _