Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 66b4993e authored by David Sterba's avatar David Sterba
Browse files

btrfs: move dev stats accounting out of wait_dev_flush



We should really just wait in wait_dev_flush and let the caller decide
what to do with the error value.

Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 2980d574
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -3512,7 +3512,6 @@ static void write_dev_flush(struct btrfs_device *device)
 */
static int wait_dev_flush(struct btrfs_device *device)
{
	int ret = 0;
	struct bio *bio = device->flush_bio;

	if (!device->flush_bio_sent)
@@ -3521,13 +3520,7 @@ static int wait_dev_flush(struct btrfs_device *device)
	device->flush_bio_sent = 0;
	wait_for_completion_io(&device->flush_wait);

	if (bio->bi_error) {
		ret = bio->bi_error;
		btrfs_dev_stat_inc_and_print(device,
				BTRFS_DEV_STAT_FLUSH_ERRS);
	}

	return ret;
	return bio->bi_error;
}

static int check_barrier_error(struct btrfs_fs_devices *fsdevs)
@@ -3586,6 +3579,8 @@ static int barrier_all_devices(struct btrfs_fs_info *info)
		ret = wait_dev_flush(dev);
		if (ret) {
			dev->last_flush_error = ret;
			btrfs_dev_stat_inc_and_print(dev,
					BTRFS_DEV_STAT_FLUSH_ERRS);
			errors_wait++;
		}
	}