Btrfs: do not hold the file extent leaf locked when adding extent item
authorJosef Bacik <jbacik@fusionio.com>
Tue, 25 Sep 2012 19:26:16 +0000 (15:26 -0400)
committerChris Mason <chris.mason@fusionio.com>
Tue, 9 Oct 2012 13:15:40 +0000 (09:15 -0400)
For some reason we unlock everything except the leaf we are on, set the path
blocking and then add the extent item for the extent we just finished
writing.  I can't for the life of me figure out why we would want to do
this, and the history doesn't really indicate that there was a real reason
for it, so just remove it.  This will reduce our tree lock contention on
heavy writes.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/inode.c

index e355eb0aea1eccb83fd75d4ba78854caea9d447c..d24b65014612509d45937478d914b2e22cc3d243 100644 (file)
@@ -1822,10 +1822,8 @@ static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
        btrfs_set_file_extent_encryption(leaf, fi, encryption);
        btrfs_set_file_extent_other_encoding(leaf, fi, other_encoding);
 
-       btrfs_unlock_up_safe(path, 1);
-       btrfs_set_lock_blocking(leaf);
-
        btrfs_mark_buffer_dirty(leaf);
+       btrfs_release_path(path);
 
        inode_add_bytes(inode, num_bytes);