diff options
| author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 17:49:55 +1100 | 
|---|---|---|
| committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 17:50:28 +1100 | 
| commit | fb045adb99d9b7c562dc7fef834857f78249daa1 (patch) | |
| tree | 1fd6a4024fffeec568abe100d730589bfdb81c38 /fs/btrfs/export.c | |
| parent | 5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff (diff) | |
| download | olio-linux-3.10-fb045adb99d9b7c562dc7fef834857f78249daa1.tar.xz olio-linux-3.10-fb045adb99d9b7c562dc7fef834857f78249daa1.zip  | |
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/btrfs/export.c')
| -rw-r--r-- | fs/btrfs/export.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/export.c b/fs/btrfs/export.c index 659f532d26a..0ccf9a8afcd 100644 --- a/fs/btrfs/export.c +++ b/fs/btrfs/export.c @@ -110,7 +110,7 @@ static struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,  	dentry = d_obtain_alias(inode);  	if (!IS_ERR(dentry)) -		dentry->d_op = &btrfs_dentry_operations; +		d_set_d_op(dentry, &btrfs_dentry_operations);  	return dentry;  fail:  	srcu_read_unlock(&fs_info->subvol_srcu, index); @@ -225,7 +225,7 @@ static struct dentry *btrfs_get_parent(struct dentry *child)  	key.offset = 0;  	dentry = d_obtain_alias(btrfs_iget(root->fs_info->sb, &key, root, NULL));  	if (!IS_ERR(dentry)) -		dentry->d_op = &btrfs_dentry_operations; +		d_set_d_op(dentry, &btrfs_dentry_operations);  	return dentry;  fail:  	btrfs_free_path(path);  |