summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/acl.c
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2012-04-23 19:55:30 +0200
committerJosef Bacik <josef@redhat.com>2012-05-30 16:23:27 +0200
commit30f8fe3e47c5bb5715aa80b2a2fa0cab8b218fae (patch)
tree127c63efa5d8676e9915124654e42dda27276847 /fs/btrfs/acl.c
parentBtrfs: use i_version instead of our own sequence (diff)
downloadlinux-30f8fe3e47c5bb5715aa80b2a2fa0cab8b218fae.tar.xz
linux-30f8fe3e47c5bb5715aa80b2a2fa0cab8b218fae.zip
Btrfs: cache no acl on new inodes
When running compilebench I noticed we were spending some time looking up acls on new inodes, which shouldn't be happening since there were no acls. This is because when we init acls on the inode after creating them we don't cache the fact there are no acls if there aren't any. Doing this adds a little bit of a bump to my compilebench runs. Thanks, Btrfs: cache no acl on new inodes Signed-off-by: Josef Bacik <josef@redhat.com>
Diffstat (limited to 'fs/btrfs/acl.c')
-rw-r--r--fs/btrfs/acl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c
index 89b156d85d63..761e2cd8fed1 100644
--- a/fs/btrfs/acl.c
+++ b/fs/btrfs/acl.c
@@ -227,7 +227,11 @@ int btrfs_init_acl(struct btrfs_trans_handle *trans,
if (ret > 0) {
/* we need an acl */
ret = btrfs_set_acl(trans, inode, acl, ACL_TYPE_ACCESS);
+ } else {
+ cache_no_acl(inode);
}
+ } else {
+ cache_no_acl(inode);
}
failed:
posix_acl_release(acl);