aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-21 11:50:57 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-21 11:50:57 -0400
commit31ed8e6f93a27304c9e157dab0267772cd94eaad (patch)
tree2fd62bea73efa7e2920b0c3e1d81c425eb7bf71c /net/sunrpc
parent7e5cb5e151c5474b4a468f437f5038ba9f67ef4d (diff)
parent26fe575028703948880fce4355a210c76bb0536e (diff)
Merge branch 'dentry-cleanups' (dcache access cleanups and optimizations)
This branch simplifies and clarifies the dcache lookup, and allows us to do certain nice optimizations when comparing dentries. It also cleans up the interface to __d_lookup_rcu(), especially around passing the inode information around. * dentry-cleanups: vfs: make it possible to access the dentry hash/len as one 64-bit entry vfs: move dentry name length comparison from dentry_cmp() into callers vfs: do the careful dentry name access for all dentry_cmp cases vfs: remove unnecessary d_unhashed() check from __d_lookup_rcu vfs: clean up __d_lookup_rcu() and dentry_cmp() interfaces
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/clnt.c4
-rw-r--r--net/sunrpc/rpc_pipe.c7
2 files changed, 3 insertions, 8 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index adf2990acebf..7fee13b331d1 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -127,9 +127,7 @@ static struct dentry *rpc_setup_pipedir_sb(struct super_block *sb,
127{ 127{
128 static uint32_t clntid; 128 static uint32_t clntid;
129 char name[15]; 129 char name[15];
130 struct qstr q = { 130 struct qstr q = { .name = name };
131 .name = name,
132 };
133 struct dentry *dir, *dentry; 131 struct dentry *dir, *dentry;
134 int error; 132 int error;
135 133
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index 3b62cf288031..fd2423991c2d 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -1059,12 +1059,9 @@ static const struct rpc_filelist files[] = {
1059struct dentry *rpc_d_lookup_sb(const struct super_block *sb, 1059struct dentry *rpc_d_lookup_sb(const struct super_block *sb,
1060 const unsigned char *dir_name) 1060 const unsigned char *dir_name)
1061{ 1061{
1062 struct qstr dir = { 1062 struct qstr dir = QSTR_INIT(dir_name, strlen(dir_name));
1063 .name = dir_name,
1064 .len = strlen(dir_name),
1065 .hash = full_name_hash(dir_name, strlen(dir_name)),
1066 };
1067 1063
1064 dir.hash = full_name_hash(dir.name, dir.len);
1068 return d_lookup(sb->s_root, &dir); 1065 return d_lookup(sb->s_root, &dir);
1069} 1066}
1070EXPORT_SYMBOL_GPL(rpc_d_lookup_sb); 1067EXPORT_SYMBOL_GPL(rpc_d_lookup_sb);