|
@@ -2471,6 +2471,9 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,
|
|
|
clean_tree_block(fs_info, next);
|
|
|
btrfs_wait_tree_block_writeback(next);
|
|
|
btrfs_tree_unlock(next);
|
|
|
+ } else {
|
|
|
+ if (test_and_clear_bit(EXTENT_BUFFER_DIRTY, &next->bflags))
|
|
|
+ clear_extent_buffer_dirty(next);
|
|
|
}
|
|
|
|
|
|
WARN_ON(root_owner !=
|
|
@@ -2551,6 +2554,9 @@ static noinline int walk_up_log_tree(struct btrfs_trans_handle *trans,
|
|
|
clean_tree_block(fs_info, next);
|
|
|
btrfs_wait_tree_block_writeback(next);
|
|
|
btrfs_tree_unlock(next);
|
|
|
+ } else {
|
|
|
+ if (test_and_clear_bit(EXTENT_BUFFER_DIRTY, &next->bflags))
|
|
|
+ clear_extent_buffer_dirty(next);
|
|
|
}
|
|
|
|
|
|
WARN_ON(root_owner != BTRFS_TREE_LOG_OBJECTID);
|
|
@@ -2629,6 +2635,9 @@ static int walk_log_tree(struct btrfs_trans_handle *trans,
|
|
|
clean_tree_block(fs_info, next);
|
|
|
btrfs_wait_tree_block_writeback(next);
|
|
|
btrfs_tree_unlock(next);
|
|
|
+ } else {
|
|
|
+ if (test_and_clear_bit(EXTENT_BUFFER_DIRTY, &next->bflags))
|
|
|
+ clear_extent_buffer_dirty(next);
|
|
|
}
|
|
|
|
|
|
WARN_ON(log->root_key.objectid !=
|