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

Commit 18edc8ea authored by Dmitry Monakhov's avatar Dmitry Monakhov Committed by Jens Axboe
Browse files

blkdev: fix blkdev_issue_zeroout return value



- If function called without barrier option retvalue is incorrect

Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 3383977f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ static void bio_batch_end_io(struct bio *bio, int err)
int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
			sector_t nr_sects, gfp_t gfp_mask, unsigned long flags)
{
	int ret = 0;
	int ret;
	struct bio *bio;
	struct bio_batch bb;
	unsigned int sz, issued = 0;
@@ -163,11 +163,14 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
			return ret;
	}
submit:
	ret = 0;
	while (nr_sects != 0) {
		bio = bio_alloc(gfp_mask,
				min(nr_sects, (sector_t)BIO_MAX_PAGES));
		if (!bio)
		if (!bio) {
			ret = -ENOMEM;
			break;
		}

		bio->bi_sector = sector;
		bio->bi_bdev   = bdev;
@@ -186,6 +189,7 @@ submit:
			if (ret < (sz << 9))
				break;
		}
		ret = 0;
		issued++;
		submit_bio(WRITE, bio);
	}