• Chris Mason's avatar
    Btrfs: streamline tree-log btree block writeout · 690587d1
    Chris Mason authored
    Syncing the tree log is a 3 phase operation.
    
    1) write and wait for all the tree log blocks for a given root.
    
    2) write and wait for all the tree log blocks for the
    tree of tree log roots.
    
    3) write and wait for the super blocks (barriers here)
    
    This isn't as efficient as it could be because there is
    no requirement to wait for the blocks from step one to hit the disk
    before we start writing the blocks from step two.  This commit
    changes the sequence so that we don't start waiting until
    all the tree blocks from both steps one and two have been sent
    to disk.
    
    We do this by breaking up btrfs_write_wait_marked_extents into
    two functions, which is trivial because it was already broken
    up into two parts.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    690587d1
tree-log.c 84 KB