diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
| -rw-r--r-- | fs/btrfs/disk-io.c | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 487bbe4fb3c6..dfdab849037b 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -3643,7 +3643,14 @@ int write_all_supers(struct btrfs_fs_info *fs_info, int max_mirrors)  	u64 flags;  	do_barriers = !btrfs_test_opt(fs_info, NOBARRIER); -	backup_super_roots(fs_info); + +	/* +	 * max_mirrors == 0 indicates we're from commit_transaction, +	 * not from fsync where the tree roots in fs_info have not +	 * been consistent on disk. +	 */ +	if (max_mirrors == 0) +		backup_super_roots(fs_info);  	sb = fs_info->super_for_commit;  	dev_item = &sb->dev_item; |