diff options
author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:49:55 -0500 |
---|---|---|
committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:50:28 -0500 |
commit | fb045adb99d9b7c562dc7fef834857f78249daa1 (patch) | |
tree | 1fd6a4024fffeec568abe100d730589bfdb81c38 /fs/isofs | |
parent | 5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff (diff) |
fs: dcache reduce branches in lookup path
Reduce some branches and memory accesses in dcache lookup by adding dentry
flags to indicate common d_ops are set, rather than having to check them.
This saves a pointer memory access (dentry->d_op) in common path lookup
situations, and saves another pointer load and branch in cases where we
have d_op but not the particular operation.
Patched with:
git grep -E '[.>]([[:space:]])*d_op([[:space:]])*=' | xargs sed -e 's/\([^\t ]*\)->d_op = \(.*\);/d_set_d_op(\1, \2);/' -e 's/\([^\t ]*\)\.d_op = \(.*\);/d_set_d_op(\&\1, \2);/' -i
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'fs/isofs')
-rw-r--r-- | fs/isofs/inode.c | 2 | ||||
-rw-r--r-- | fs/isofs/namei.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index d8f3a652243d..844a7903c72f 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c | |||
@@ -949,7 +949,7 @@ root_found: | |||
949 | table += 2; | 949 | table += 2; |
950 | if (opt.check == 'r') | 950 | if (opt.check == 'r') |
951 | table++; | 951 | table++; |
952 | s->s_root->d_op = &isofs_dentry_ops[table]; | 952 | d_set_d_op(s->s_root, &isofs_dentry_ops[table]); |
953 | 953 | ||
954 | kfree(opt.iocharset); | 954 | kfree(opt.iocharset); |
955 | 955 | ||
diff --git a/fs/isofs/namei.c b/fs/isofs/namei.c index 715f7d318046..679a849c3b27 100644 --- a/fs/isofs/namei.c +++ b/fs/isofs/namei.c | |||
@@ -172,7 +172,7 @@ struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, struct nam | |||
172 | struct inode *inode; | 172 | struct inode *inode; |
173 | struct page *page; | 173 | struct page *page; |
174 | 174 | ||
175 | dentry->d_op = dir->i_sb->s_root->d_op; | 175 | d_set_d_op(dentry, dir->i_sb->s_root->d_op); |
176 | 176 | ||
177 | page = alloc_page(GFP_USER); | 177 | page = alloc_page(GFP_USER); |
178 | if (!page) | 178 | if (!page) |