Commit 033e8088 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'block-6.9-20240329' of git://git.kernel.dk/linux

Pull block fixes from Jens Axboe:
 "Small round of minor fixes or cleanups for the 6.9-rc2 kernel, one
  fixing an issue introduced in 6.8"

* tag 'block-6.9-20240329' of git://git.kernel.dk/linux:
  block: Do not force full zone append completion in req_bio_endio()
  block: don't reject too large max_user_sectors in blk_validate_limits
  block: Make blk_rq_set_mixed_merge() static
parents 3508f318 55251fbd
...@@ -726,7 +726,7 @@ static int ll_merge_requests_fn(struct request_queue *q, struct request *req, ...@@ -726,7 +726,7 @@ static int ll_merge_requests_fn(struct request_queue *q, struct request *req,
* which can be mixed are set in each bio and mark @rq as mixed * which can be mixed are set in each bio and mark @rq as mixed
* merged. * merged.
*/ */
void blk_rq_set_mixed_merge(struct request *rq) static void blk_rq_set_mixed_merge(struct request *rq)
{ {
blk_opf_t ff = rq->cmd_flags & REQ_FAILFAST_MASK; blk_opf_t ff = rq->cmd_flags & REQ_FAILFAST_MASK;
struct bio *bio; struct bio *bio;
......
...@@ -770,16 +770,11 @@ static void req_bio_endio(struct request *rq, struct bio *bio, ...@@ -770,16 +770,11 @@ static void req_bio_endio(struct request *rq, struct bio *bio,
/* /*
* Partial zone append completions cannot be supported as the * Partial zone append completions cannot be supported as the
* BIO fragments may end up not being written sequentially. * BIO fragments may end up not being written sequentially.
* For such case, force the completed nbytes to be equal to
* the BIO size so that bio_advance() sets the BIO remaining
* size to 0 and we end up calling bio_endio() before returning.
*/ */
if (bio->bi_iter.bi_size != nbytes) { if (bio->bi_iter.bi_size != nbytes)
bio->bi_status = BLK_STS_IOERR; bio->bi_status = BLK_STS_IOERR;
nbytes = bio->bi_iter.bi_size; else
} else {
bio->bi_iter.bi_sector = rq->__sector; bio->bi_iter.bi_sector = rq->__sector;
}
} }
bio_advance(bio, nbytes); bio_advance(bio, nbytes);
......
...@@ -146,8 +146,7 @@ static int blk_validate_limits(struct queue_limits *lim) ...@@ -146,8 +146,7 @@ static int blk_validate_limits(struct queue_limits *lim)
max_hw_sectors = min_not_zero(lim->max_hw_sectors, max_hw_sectors = min_not_zero(lim->max_hw_sectors,
lim->max_dev_sectors); lim->max_dev_sectors);
if (lim->max_user_sectors) { if (lim->max_user_sectors) {
if (lim->max_user_sectors > max_hw_sectors || if (lim->max_user_sectors < PAGE_SIZE / SECTOR_SIZE)
lim->max_user_sectors < PAGE_SIZE / SECTOR_SIZE)
return -EINVAL; return -EINVAL;
lim->max_sectors = min(max_hw_sectors, lim->max_user_sectors); lim->max_sectors = min(max_hw_sectors, lim->max_user_sectors);
} else { } else {
......
...@@ -339,7 +339,6 @@ int ll_back_merge_fn(struct request *req, struct bio *bio, ...@@ -339,7 +339,6 @@ int ll_back_merge_fn(struct request *req, struct bio *bio,
bool blk_attempt_req_merge(struct request_queue *q, struct request *rq, bool blk_attempt_req_merge(struct request_queue *q, struct request *rq,
struct request *next); struct request *next);
unsigned int blk_recalc_rq_segments(struct request *rq); unsigned int blk_recalc_rq_segments(struct request *rq);
void blk_rq_set_mixed_merge(struct request *rq);
bool blk_rq_merge_ok(struct request *rq, struct bio *bio); bool blk_rq_merge_ok(struct request *rq, struct bio *bio);
enum elv_merge blk_try_merge(struct request *rq, struct bio *bio); enum elv_merge blk_try_merge(struct request *rq, struct bio *bio);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment