]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/btrfs/transaction.c
Btrfs: merge pending IO for tree log write back
[karo-tx-linux.git] / fs / btrfs / transaction.c
index eec8686416ca2c330f1176303d0eacf5ad389dc9..8c8b80085e754e242f759f242a77289c54da2972 100644 (file)
@@ -778,9 +778,7 @@ int btrfs_write_marked_extents(struct btrfs_root *root,
        struct extent_state *cached_state = NULL;
        u64 start = 0;
        u64 end;
-       struct blk_plug plug;
 
-       blk_start_plug(&plug);
        while (!find_first_extent_bit(dirty_pages, start, &start, &end,
                                      mark, &cached_state)) {
                convert_extent_bit(dirty_pages, start, end, EXTENT_NEED_WAIT,
@@ -794,7 +792,6 @@ int btrfs_write_marked_extents(struct btrfs_root *root,
        }
        if (err)
                werr = err;
-       blk_finish_plug(&plug);
        return werr;
 }
 
@@ -839,8 +836,11 @@ int btrfs_write_and_wait_marked_extents(struct btrfs_root *root,
 {
        int ret;
        int ret2;
+       struct blk_plug plug;
 
+       blk_start_plug(&plug);
        ret = btrfs_write_marked_extents(root, dirty_pages, mark);
+       blk_finish_plug(&plug);
        ret2 = btrfs_wait_marked_extents(root, dirty_pages, mark);
 
        if (ret)