OSDN Git Service

Btrfs: skip locking when searching commit root
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Thu, 13 Feb 2014 03:19:47 +0000 (11:19 +0800)
committerJosef Bacik <jbacik@fb.com>
Mon, 10 Mar 2014 19:16:55 +0000 (15:16 -0400)
We won't change commit root, skip locking dance with commit root
when walking backrefs, this can speed up btrfs send operations.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
fs/btrfs/backref.c

index a88da72..860f4f2 100644 (file)
@@ -873,8 +873,10 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
        path = btrfs_alloc_path();
        if (!path)
                return -ENOMEM;
-       if (!trans)
+       if (!trans) {
                path->search_commit_root = 1;
+               path->skip_locking = 1;
+       }
 
        /*
         * grab both a lock on the path and a lock on the delayed ref head.