diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-08-28 15:29:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-08 14:09:04 -0400 |
commit | 18f4c644773bc8de1fd9c5182b30c231aafb94ef (patch) | |
tree | b423bdb22304c6af3ad0f26b873e6081fafc8f01 /fs/xfs | |
parent | 1d5ccd1c422d7d292a9e45248aa36771900c6331 (diff) |
jffs2/jfs/xfs: switch over to 'check_acl' rather than 'permission()'
This avoids an indirect call in the VFS for each path component lookup.
Well, at least as long as you own the directory in question, and the ACL
check is unnecessary.
Reviewed-by: James Morris <jmorris@namei.org>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_iops.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 8070b34cc287..6c32f1d63d8c 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -485,14 +485,6 @@ xfs_vn_put_link( | |||
485 | } | 485 | } |
486 | 486 | ||
487 | STATIC int | 487 | STATIC int |
488 | xfs_vn_permission( | ||
489 | struct inode *inode, | ||
490 | int mask) | ||
491 | { | ||
492 | return generic_permission(inode, mask, xfs_check_acl); | ||
493 | } | ||
494 | |||
495 | STATIC int | ||
496 | xfs_vn_getattr( | 488 | xfs_vn_getattr( |
497 | struct vfsmount *mnt, | 489 | struct vfsmount *mnt, |
498 | struct dentry *dentry, | 490 | struct dentry *dentry, |
@@ -696,7 +688,7 @@ xfs_vn_fiemap( | |||
696 | } | 688 | } |
697 | 689 | ||
698 | static const struct inode_operations xfs_inode_operations = { | 690 | static const struct inode_operations xfs_inode_operations = { |
699 | .permission = xfs_vn_permission, | 691 | .check_acl = xfs_check_acl, |
700 | .truncate = xfs_vn_truncate, | 692 | .truncate = xfs_vn_truncate, |
701 | .getattr = xfs_vn_getattr, | 693 | .getattr = xfs_vn_getattr, |
702 | .setattr = xfs_vn_setattr, | 694 | .setattr = xfs_vn_setattr, |
@@ -724,7 +716,7 @@ static const struct inode_operations xfs_dir_inode_operations = { | |||
724 | .rmdir = xfs_vn_unlink, | 716 | .rmdir = xfs_vn_unlink, |
725 | .mknod = xfs_vn_mknod, | 717 | .mknod = xfs_vn_mknod, |
726 | .rename = xfs_vn_rename, | 718 | .rename = xfs_vn_rename, |
727 | .permission = xfs_vn_permission, | 719 | .check_acl = xfs_check_acl, |
728 | .getattr = xfs_vn_getattr, | 720 | .getattr = xfs_vn_getattr, |
729 | .setattr = xfs_vn_setattr, | 721 | .setattr = xfs_vn_setattr, |
730 | .setxattr = generic_setxattr, | 722 | .setxattr = generic_setxattr, |
@@ -749,7 +741,7 @@ static const struct inode_operations xfs_dir_ci_inode_operations = { | |||
749 | .rmdir = xfs_vn_unlink, | 741 | .rmdir = xfs_vn_unlink, |
750 | .mknod = xfs_vn_mknod, | 742 | .mknod = xfs_vn_mknod, |
751 | .rename = xfs_vn_rename, | 743 | .rename = xfs_vn_rename, |
752 | .permission = xfs_vn_permission, | 744 | .check_acl = xfs_check_acl, |
753 | .getattr = xfs_vn_getattr, | 745 | .getattr = xfs_vn_getattr, |
754 | .setattr = xfs_vn_setattr, | 746 | .setattr = xfs_vn_setattr, |
755 | .setxattr = generic_setxattr, | 747 | .setxattr = generic_setxattr, |
@@ -762,7 +754,7 @@ static const struct inode_operations xfs_symlink_inode_operations = { | |||
762 | .readlink = generic_readlink, | 754 | .readlink = generic_readlink, |
763 | .follow_link = xfs_vn_follow_link, | 755 | .follow_link = xfs_vn_follow_link, |
764 | .put_link = xfs_vn_put_link, | 756 | .put_link = xfs_vn_put_link, |
765 | .permission = xfs_vn_permission, | 757 | .check_acl = xfs_check_acl, |
766 | .getattr = xfs_vn_getattr, | 758 | .getattr = xfs_vn_getattr, |
767 | .setattr = xfs_vn_setattr, | 759 | .setattr = xfs_vn_setattr, |
768 | .setxattr = generic_setxattr, | 760 | .setxattr = generic_setxattr, |