|
@@ -113,6 +113,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
|
|
ret = submit_bio_wait(type, bio);
|
|
ret = submit_bio_wait(type, bio);
|
|
if (ret == -EOPNOTSUPP)
|
|
if (ret == -EOPNOTSUPP)
|
|
ret = 0;
|
|
ret = 0;
|
|
|
|
+ bio_put(bio);
|
|
}
|
|
}
|
|
blk_finish_plug(&plug);
|
|
blk_finish_plug(&plug);
|
|
|
|
|
|
@@ -165,8 +166,10 @@ int blkdev_issue_write_same(struct block_device *bdev, sector_t sector,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if (bio)
|
|
|
|
|
|
+ if (bio) {
|
|
ret = submit_bio_wait(REQ_WRITE | REQ_WRITE_SAME, bio);
|
|
ret = submit_bio_wait(REQ_WRITE | REQ_WRITE_SAME, bio);
|
|
|
|
+ bio_put(bio);
|
|
|
|
+ }
|
|
return ret != -EOPNOTSUPP ? ret : 0;
|
|
return ret != -EOPNOTSUPP ? ret : 0;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(blkdev_issue_write_same);
|
|
EXPORT_SYMBOL(blkdev_issue_write_same);
|
|
@@ -206,8 +209,11 @@ static int __blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if (bio)
|
|
|
|
- return submit_bio_wait(WRITE, bio);
|
|
|
|
|
|
+ if (bio) {
|
|
|
|
+ ret = submit_bio_wait(WRITE, bio);
|
|
|
|
+ bio_put(bio);
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|