• Josef Bacik's avatar
    btrfs: replace clearing extent buffer dirty bit with btrfs_clean_block · c4e54a65
    Josef Bacik authored
    Now that we're passing in the trans into btrfs_clean_tree_block, we can
    easily roll in the handling of the !trans case and replace all
    occurrences of
    
    	if (test_and_clear_bit(EXTENT_BUFFER_DIRTY, &eb->bflags))
    		clear_extent_buffer_dirty(eb);
    
    with
    
    	btrfs_tree_lock(eb);
    	btrfs_clean_tree_block(eb);
    	btrfs_tree_unlock(eb);
    
    We need the lock because if we are actually dirty we need to make sure
    we aren't racing with anything that's starting writeout currently.  This
    also makes sure that we're accounting fs_info->dirty_metadata_bytes
    appropriately.
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    c4e54a65
disk-io.c 145 KB