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>
This commit is contained in:
Jan Blunck
2008-02-14 19:34:35 -08:00
committed by Linus Torvalds
parent 4ac9137858
commit 1d957f9bf8
41 changed files with 125 additions and 118 deletions

View File

@@ -263,7 +263,7 @@ sys_setxattr(char __user *path, char __user *name, void __user *value,
if (error)
return error;
error = setxattr(nd.path.dentry, name, value, size, flags);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -278,7 +278,7 @@ sys_lsetxattr(char __user *path, char __user *name, void __user *value,
if (error)
return error;
error = setxattr(nd.path.dentry, name, value, size, flags);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -348,7 +348,7 @@ sys_getxattr(char __user *path, char __user *name, void __user *value,
if (error)
return error;
error = getxattr(nd.path.dentry, name, value, size);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -363,7 +363,7 @@ sys_lgetxattr(char __user *path, char __user *name, void __user *value,
if (error)
return error;
error = getxattr(nd.path.dentry, name, value, size);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -422,7 +422,7 @@ sys_listxattr(char __user *path, char __user *list, size_t size)
if (error)
return error;
error = listxattr(nd.path.dentry, list, size);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -436,7 +436,7 @@ sys_llistxattr(char __user *path, char __user *list, size_t size)
if (error)
return error;
error = listxattr(nd.path.dentry, list, size);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -483,7 +483,7 @@ sys_removexattr(char __user *path, char __user *name)
if (error)
return error;
error = removexattr(nd.path.dentry, name);
path_release(&nd);
path_put(&nd.path);
return error;
}
@@ -497,7 +497,7 @@ sys_lremovexattr(char __user *path, char __user *name)
if (error)
return error;
error = removexattr(nd.path.dentry, name);
path_release(&nd);
path_put(&nd.path);
return error;
}