diff --git a/[refs] b/[refs] index 5c881702a739..bcda02b6a62c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3383977fadc4027f20907f6208a9033cd043adab +refs/heads/master: 18edc8eaa68070771bdb2098260e44efe74de722 diff --git a/trunk/block/blk-lib.c b/trunk/block/blk-lib.c index 5d793e143f3c..c1fc55a83ba1 100644 --- a/trunk/block/blk-lib.c +++ b/trunk/block/blk-lib.c @@ -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 @@ int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, if (ret < (sz << 9)) break; } + ret = 0; issued++; submit_bio(WRITE, bio); }