aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJan Blunck <jblunck@suse.de>2008-02-14 22:34:35 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-15 00:13:33 -0500
commit1d957f9bf87da74f420424d16ece005202bbebd3 (patch)
tree363d4770c0c74a536524c99ccd2762ce96ee9bbe /arch
parent4ac9137858e08a19f29feac4e1f4df7c268b0ba5 (diff)
Introduce path_put()
* 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() [akpm@linux-foundation.org: fix cifs] Signed-off-by: Jan Blunck <jblunck@suse.de> Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Christoph Hellwig <hch@lst.de> Cc: <linux-fsdevel@vger.kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Steven French <sfrench@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/kernel/osf_sys.c2
-rw-r--r--arch/mips/kernel/sysirix.c6
-rw-r--r--arch/parisc/hpux/sys_hpux.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/syscalls.c2
-rw-r--r--arch/sparc64/solaris/fs.c4
5 files changed, 8 insertions, 8 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index f2bef5e14faa..8c71daf94a59 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -260,7 +260,7 @@ osf_statfs(char __user *path, struct osf_statfs __user *buffer, unsigned long bu
260 retval = user_path_walk(path, &nd); 260 retval = user_path_walk(path, &nd);
261 if (!retval) { 261 if (!retval) {
262 retval = do_osf_statfs(nd.path.dentry, buffer, bufsiz); 262 retval = do_osf_statfs(nd.path.dentry, buffer, bufsiz);
263 path_release(&nd); 263 path_put(&nd.path);
264 } 264 }
265 return retval; 265 return retval;
266} 266}
diff --git a/arch/mips/kernel/sysirix.c b/arch/mips/kernel/sysirix.c
index 49d6292ffa05..672fba84b2cc 100644
--- a/arch/mips/kernel/sysirix.c
+++ b/arch/mips/kernel/sysirix.c
@@ -711,7 +711,7 @@ asmlinkage int irix_statfs(const char __user *path,
711 } 711 }
712 712
713dput_and_out: 713dput_and_out:
714 path_release(&nd); 714 path_put(&nd.path);
715out: 715out:
716 return error; 716 return error;
717} 717}
@@ -1385,7 +1385,7 @@ asmlinkage int irix_statvfs(char __user *fname, struct irix_statvfs __user *buf)
1385 error |= __put_user(0, &buf->f_fstr[i]); 1385 error |= __put_user(0, &buf->f_fstr[i]);
1386 1386
1387dput_and_out: 1387dput_and_out:
1388 path_release(&nd); 1388 path_put(&nd.path);
1389out: 1389out:
1390 return error; 1390 return error;
1391} 1391}
@@ -1636,7 +1636,7 @@ asmlinkage int irix_statvfs64(char __user *fname, struct irix_statvfs64 __user *
1636 error |= __put_user(0, &buf->f_fstr[i]); 1636 error |= __put_user(0, &buf->f_fstr[i]);
1637 1637
1638dput_and_out: 1638dput_and_out:
1639 path_release(&nd); 1639 path_put(&nd.path);
1640out: 1640out:
1641 return error; 1641 return error;
1642} 1642}
diff --git a/arch/parisc/hpux/sys_hpux.c b/arch/parisc/hpux/sys_hpux.c
index d7395af3e846..0c5b9dabb475 100644
--- a/arch/parisc/hpux/sys_hpux.c
+++ b/arch/parisc/hpux/sys_hpux.c
@@ -222,7 +222,7 @@ asmlinkage long hpux_statfs(const char __user *path,
222 error = vfs_statfs_hpux(nd.path.dentry, &tmp); 222 error = vfs_statfs_hpux(nd.path.dentry, &tmp);
223 if (!error && copy_to_user(buf, &tmp, sizeof(tmp))) 223 if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
224 error = -EFAULT; 224 error = -EFAULT;
225 path_release(&nd); 225 path_put(&nd.path);
226 } 226 }
227 return error; 227 return error;
228} 228}
diff --git a/arch/powerpc/platforms/cell/spufs/syscalls.c b/arch/powerpc/platforms/cell/spufs/syscalls.c
index 430404413178..49c87769b1f8 100644
--- a/arch/powerpc/platforms/cell/spufs/syscalls.c
+++ b/arch/powerpc/platforms/cell/spufs/syscalls.c
@@ -73,7 +73,7 @@ static long do_spu_create(const char __user *pathname, unsigned int flags,
73 LOOKUP_OPEN|LOOKUP_CREATE, &nd); 73 LOOKUP_OPEN|LOOKUP_CREATE, &nd);
74 if (!ret) { 74 if (!ret) {
75 ret = spufs_create(&nd, flags, mode, neighbor); 75 ret = spufs_create(&nd, flags, mode, neighbor);
76 path_release(&nd); 76 path_put(&nd.path);
77 } 77 }
78 putname(tmp); 78 putname(tmp);
79 } 79 }
diff --git a/arch/sparc64/solaris/fs.c b/arch/sparc64/solaris/fs.c
index 516932e9f70b..7d035f0d3ae1 100644
--- a/arch/sparc64/solaris/fs.c
+++ b/arch/sparc64/solaris/fs.c
@@ -436,7 +436,7 @@ asmlinkage int solaris_statvfs(u32 path, u32 buf)
436 if (!error) { 436 if (!error) {
437 struct inode *inode = nd.path.dentry->d_inode; 437 struct inode *inode = nd.path.dentry->d_inode;
438 error = report_statvfs(nd.path.mnt, inode, buf); 438 error = report_statvfs(nd.path.mnt, inode, buf);
439 path_release(&nd); 439 path_put(&nd.path);
440 } 440 }
441 return error; 441 return error;
442} 442}
@@ -466,7 +466,7 @@ asmlinkage int solaris_statvfs64(u32 path, u32 buf)
466 if (!error) { 466 if (!error) {
467 struct inode *inode = nd.path.dentry->d_inode; 467 struct inode *inode = nd.path.dentry->d_inode;
468 error = report_statvfs64(nd.path.mnt, inode, buf); 468 error = report_statvfs64(nd.path.mnt, inode, buf);
469 path_release(&nd); 469 path_put(&nd.path);
470 } 470 }
471 unlock_kernel(); 471 unlock_kernel();
472 return error; 472 return error;