diff options
Diffstat (limited to 'fs/btrfs/tree-log.c')
| -rw-r--r-- | fs/btrfs/tree-log.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 8ab33caf016f..3e6f14e13918 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -2908,6 +2908,8 @@ static noinline int walk_up_log_tree(struct btrfs_trans_handle *trans,  						     path->nodes[*level]->len);  					if (ret)  						return ret; +					btrfs_redirty_list_add(trans->transaction, +							       next);  				} else {  					if (test_and_clear_bit(EXTENT_BUFFER_DIRTY, &next->bflags))  						clear_extent_buffer_dirty(next); @@ -2988,6 +2990,7 @@ static int walk_log_tree(struct btrfs_trans_handle *trans,  						next->start, next->len);  				if (ret)  					goto out; +				btrfs_redirty_list_add(trans->transaction, next);  			} else {  				if (test_and_clear_bit(EXTENT_BUFFER_DIRTY, &next->bflags))  					clear_extent_buffer_dirty(next); @@ -3438,8 +3441,6 @@ static void free_log_tree(struct btrfs_trans_handle *trans,  			  EXTENT_DIRTY | EXTENT_NEW | EXTENT_NEED_WAIT);  	extent_io_tree_release(&log->log_csum_range); -	if (trans && log->node) -		btrfs_redirty_list_add(trans->transaction, log->node);  	btrfs_put_root(log);  }  | 
