diff options
author | Christoph Hellwig <hch@lst.de> | 2005-11-09 00:35:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:56:00 -0500 |
commit | 49705b7743fd8f5632a95ec4c6547d169d27ac1f (patch) | |
tree | b209b1f94bfcfee522c44d2abef1cdb196219a52 /net/sunrpc/rpc_pipe.c | |
parent | 8c744fb83da0771afa04695028e3550b798dad90 (diff) |
[PATCH] sanitize lookup_hash prototype
->permission and ->lookup have a struct nameidata * argument these days to
pass down lookup intents. Unfortunately some callers of lookup_hash don't
actually pass this one down. For lookup_one_len() we don't have a struct
nameidata to pass down, but as this function is a library function only
used by filesystem code this is an acceptable limitation. All other
callers should pass down the nameidata, so this patch changes the
lookup_hash interface to only take a struct nameidata argument and derives
the other two arguments to __lookup_hash from it. All callers already have
the nameidata argument available so this is not a problem.
At the same time I'd like to deprecate the lookup_hash interface as there
are better exported interfaces for filesystem usage. Before it can
actually be removed I need to fix up rpc_pipefs.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Jeff Mahoney <jeffm@suse.com>
Cc: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'net/sunrpc/rpc_pipe.c')
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 4f188d0a5d11..81e00a6c19de 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -603,7 +603,7 @@ rpc_lookup_negative(char *path, struct nameidata *nd) | |||
603 | return ERR_PTR(error); | 603 | return ERR_PTR(error); |
604 | dir = nd->dentry->d_inode; | 604 | dir = nd->dentry->d_inode; |
605 | down(&dir->i_sem); | 605 | down(&dir->i_sem); |
606 | dentry = lookup_hash(&nd->last, nd->dentry); | 606 | dentry = lookup_hash(nd); |
607 | if (IS_ERR(dentry)) | 607 | if (IS_ERR(dentry)) |
608 | goto out_err; | 608 | goto out_err; |
609 | if (dentry->d_inode) { | 609 | if (dentry->d_inode) { |
@@ -665,7 +665,7 @@ rpc_rmdir(char *path) | |||
665 | return error; | 665 | return error; |
666 | dir = nd.dentry->d_inode; | 666 | dir = nd.dentry->d_inode; |
667 | down(&dir->i_sem); | 667 | down(&dir->i_sem); |
668 | dentry = lookup_hash(&nd.last, nd.dentry); | 668 | dentry = lookup_hash(&nd); |
669 | if (IS_ERR(dentry)) { | 669 | if (IS_ERR(dentry)) { |
670 | error = PTR_ERR(dentry); | 670 | error = PTR_ERR(dentry); |
671 | goto out_release; | 671 | goto out_release; |
@@ -726,7 +726,7 @@ rpc_unlink(char *path) | |||
726 | return error; | 726 | return error; |
727 | dir = nd.dentry->d_inode; | 727 | dir = nd.dentry->d_inode; |
728 | down(&dir->i_sem); | 728 | down(&dir->i_sem); |
729 | dentry = lookup_hash(&nd.last, nd.dentry); | 729 | dentry = lookup_hash(&nd); |
730 | if (IS_ERR(dentry)) { | 730 | if (IS_ERR(dentry)) { |
731 | error = PTR_ERR(dentry); | 731 | error = PTR_ERR(dentry); |
732 | goto out_release; | 732 | goto out_release; |