Btrfs: try to only do one btrfs_search_slot in do_setxattr
authorJosef Bacik <josef@redhat.com>
Fri, 27 May 2011 16:06:11 +0000 (12:06 -0400)
committerJosef Bacik <josef@redhat.com>
Mon, 11 Jul 2011 13:58:45 +0000 (09:58 -0400)
commitfa09200b8334f9a6af3f656edae924a98d85630f
tree9213ac48212f70d86fb60834beb464d68be332ba
parent149e2d76b4886c4c7ff5e077646a8ba3563c8026
Btrfs: try to only do one btrfs_search_slot in do_setxattr

I've been watching how many btrfs_search_slot()'s we do and I noticed that when
we create a file with selinux enabled we were doing 2 each time we initialize
the security context.  That's because we lookup the xattr first so we can delete
it if we're setting a new value to an existing xattr.  But in the create case we
don't have any xattrs, so it is completely useless to have the extra lookup.  So
re-arrange things so that we only lookup first if we specifically have
XATTR_REPLACE.  That way in the basic case we only do 1 search, and in the more
complicated case we do the normal 2 lookups.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
fs/btrfs/dir-item.c
fs/btrfs/xattr.c