diff options
author | Christoph Hellwig <hch@lst.de> | 2017-02-08 14:46:49 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-02-08 13:43:08 -0700 |
commit | 1e739730c5b9ea80a2f25e9cf6e1025d47e3d8ed (patch) | |
tree | 4f48ed6c92153fb9941185182e918232eb3472f4 /block/blk.h | |
parent | 34fe7c05400663e01e23cddd1fea68bb7a2b3d29 (diff) | |
download | lwn-1e739730c5b9ea80a2f25e9cf6e1025d47e3d8ed.tar.gz lwn-1e739730c5b9ea80a2f25e9cf6e1025d47e3d8ed.zip |
block: optionally merge discontiguous discard bios into a single request
Add a new merge strategy that merges discard bios into a request until the
maximum number of discard ranges (or the maximum discard size) is reached
from the plug merging code. I/O scheduler merging is not wired up yet
but might also be useful, although not for fast devices like NVMe which
are the only user for now.
Note that for now we don't support limiting the size of each discard range,
but if needed that can be added later.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk.h')
-rw-r--r-- | block/blk.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/block/blk.h b/block/blk.h index ae82f2ac4019..d1ea4bd9b9a3 100644 --- a/block/blk.h +++ b/block/blk.h @@ -100,6 +100,8 @@ bool bio_attempt_front_merge(struct request_queue *q, struct request *req, struct bio *bio); bool bio_attempt_back_merge(struct request_queue *q, struct request *req, struct bio *bio); +bool bio_attempt_discard_merge(struct request_queue *q, struct request *req, + struct bio *bio); bool blk_attempt_plug_merge(struct request_queue *q, struct bio *bio, unsigned int *request_count, struct request **same_queue_rq); |