Skip to content

Commit

Permalink
blkdev: fix blkdev_issue_zeroout return value
Browse files Browse the repository at this point in the history
- If function called without barrier option retvalue is incorrect

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
  • Loading branch information
Dmitry Monakhov authored and Jens Axboe committed Aug 8, 2010
1 parent 3383977 commit 18edc8e
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions block/blk-lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -186,6 +189,7 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
if (ret < (sz << 9))
break;
}
ret = 0;
issued++;
submit_bio(WRITE, bio);
}
Expand Down

0 comments on commit 18edc8e

Please sign in to comment.