[PATCH 07/13] Use path_put() in a few places instead of {mnt,d}put()

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Bharata B Rao
Date: Sunday, October 21, 2007 - 11:59 pm

From: Jan Blunck <jblunck@suse.de>

Use path_put() in a few places instead of {mnt,d}put()

Signed-off-by: Jan Blunck <jblunck@suse.de>
Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
Acked-by: Christoph Hellwig <hch@lst.de>
---
 fs/afs/mntpt.c |    3 +--
 fs/namei.c     |   15 +++++----------
 2 files changed, 6 insertions(+), 12 deletions(-)

--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -235,8 +235,7 @@ static void *afs_mntpt_follow_link(struc
 	err = do_add_mount(newmnt, nd, MNT_SHRINKABLE, &afs_vfsmounts);
 	switch (err) {
 	case 0:
-		dput(nd->path.dentry);
-		mntput(nd->path.mnt);
+		path_put(&nd->path);
 		nd->path.mnt = newmnt;
 		nd->path.dentry = dget(newmnt->mnt_root);
 		schedule_delayed_work(&afs_mntpt_expiry_timer,
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -626,8 +626,7 @@ static __always_inline int __do_follow_l
 		if (dentry->d_inode->i_op->put_link)
 			dentry->d_inode->i_op->put_link(dentry, nd, cookie);
 	}
-	dput(dentry);
-	mntput(path->mnt);
+	path_put(path);
 
 	return error;
 }
@@ -1034,8 +1033,7 @@ static int fastcall link_path_walk(const
 		result = __link_path_walk(name, nd);
 	}
 
-	dput(save.path.dentry);
-	mntput(save.path.mnt);
+	path_put(&save.path);
 
 	return result;
 }
@@ -1057,8 +1055,7 @@ static int __emul_lookup_dentry(const ch
 
 	if (!nd->path.dentry->d_inode ||
 	    S_ISDIR(nd->path.dentry->d_inode->i_mode)) {
-		struct dentry *old_dentry = nd->path.dentry;
-		struct vfsmount *old_mnt = nd->path.mnt;
+		struct path old_path = nd->path;
 		struct qstr last = nd->last;
 		int last_type = nd->last_type;
 		struct fs_struct *fs = current->fs;
@@ -1074,14 +1071,12 @@ static int __emul_lookup_dentry(const ch
 		read_unlock(&fs->lock);
 		if (path_walk(name, nd) == 0) {
 			if (nd->path.dentry->d_inode) {
-				dput(old_dentry);
-				mntput(old_mnt);
+				path_put(&old_path);
 				return 1;
 			}
 			path_put(&nd->path);
 		}
-		nd->path.dentry = old_dentry;
-		nd->path.mnt = old_mnt;
+		nd->path = old_path;
 		nd->last = last;
 		nd->last_type = last_type;
 	}
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/13] Use struct path in struct nameidata, Bharata B Rao, (Sun Oct 21, 11:53 pm)
[PATCH 01/13] Don't touch fs_struct in drivers, Bharata B Rao, (Sun Oct 21, 11:54 pm)
[PATCH 02/13] Don't touch fs_struct in usermodehelper, Bharata B Rao, (Sun Oct 21, 11:55 pm)
[PATCH 03/13] Remove path_release_on_umount(), Bharata B Rao, (Sun Oct 21, 11:56 pm)
[PATCH 04/13] Move struct path into its own header, Bharata B Rao, (Sun Oct 21, 11:57 pm)
[PATCH 06/13] Introduce path_put(), Bharata B Rao, (Sun Oct 21, 11:59 pm)
[PATCH 07/13] Use path_put() in a few places instead of {m ..., Bharata B Rao, (Sun Oct 21, 11:59 pm)
[PATCH 08/13] Introduce path_get(), Bharata B Rao, (Mon Oct 22, 12:00 am)
[PATCH 09/13] Use struct path in fs_struct, Bharata B Rao, (Mon Oct 22, 12:01 am)
[PATCH 10/13] Make set_fs_{root,pwd} take a struct path, Bharata B Rao, (Mon Oct 22, 12:02 am)
[PATCH 12/13] Use struct path argument in proc_get_link(), Bharata B Rao, (Mon Oct 22, 12:03 am)
Re: [PATCH 13/13] Rename {__}d_path() to {__}print_path() ..., Christoph Hellwig, (Mon Oct 22, 3:14 am)
Re: [PATCH 00/13] Use struct path in struct nameidata, Christoph Hellwig, (Mon Oct 22, 6:57 am)
Re: [PATCH 00/13] Use struct path in struct nameidata, Andrew Morton, (Mon Oct 22, 3:56 pm)
Re: [PATCH 00/13] Use struct path in struct nameidata, Bharata B Rao, (Mon Oct 22, 7:33 pm)
Re: [PATCH 00/13] Use struct path in struct nameidata, Bharata B Rao, (Tue Oct 23, 8:31 pm)