Commit 650c8edf authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'block-5.16-2021-11-27' of git://git.kernel.dk/linux-block

Pull more block fixes from Jens Axboe:
 "Turns out that the flushing out of pending fixes before the
  Thanksgiving break didn't quite work out in terms of timing, so here's
  a followup set of fixes:

   - rq_qos_done() should be called regardless of whether or not we're
     the final put of the request, it's not related to the freeing of
     the state. This fixes an IO stall with wbt that a few users have
     reported, a regression in this release.

   - Only define zram_wb_devops if it's used, fixing a compilation
     warning for some compilers"

* tag 'block-5.16-2021-11-27' of git://git.kernel.dk/linux-block:
  zram: only make zram_wb_devops for CONFIG_ZRAM_WRITEBACK
  block: call rq_qos_done() before ref check in batch completions
parents 9e9fbe44 d422f401
...@@ -860,13 +860,14 @@ void blk_mq_end_request_batch(struct io_comp_batch *iob) ...@@ -860,13 +860,14 @@ void blk_mq_end_request_batch(struct io_comp_batch *iob)
if (iob->need_ts) if (iob->need_ts)
__blk_mq_end_request_acct(rq, now); __blk_mq_end_request_acct(rq, now);
rq_qos_done(rq->q, rq);
WRITE_ONCE(rq->state, MQ_RQ_IDLE); WRITE_ONCE(rq->state, MQ_RQ_IDLE);
if (!refcount_dec_and_test(&rq->ref)) if (!refcount_dec_and_test(&rq->ref))
continue; continue;
blk_crypto_free_request(rq); blk_crypto_free_request(rq);
blk_pm_mark_last_busy(rq); blk_pm_mark_last_busy(rq);
rq_qos_done(rq->q, rq);
if (nr_tags == TAG_COMP_BATCH || cur_hctx != rq->mq_hctx) { if (nr_tags == TAG_COMP_BATCH || cur_hctx != rq->mq_hctx) {
if (cur_hctx) if (cur_hctx)
......
...@@ -1853,12 +1853,14 @@ static const struct block_device_operations zram_devops = { ...@@ -1853,12 +1853,14 @@ static const struct block_device_operations zram_devops = {
.owner = THIS_MODULE .owner = THIS_MODULE
}; };
#ifdef CONFIG_ZRAM_WRITEBACK
static const struct block_device_operations zram_wb_devops = { static const struct block_device_operations zram_wb_devops = {
.open = zram_open, .open = zram_open,
.submit_bio = zram_submit_bio, .submit_bio = zram_submit_bio,
.swap_slot_free_notify = zram_slot_free_notify, .swap_slot_free_notify = zram_slot_free_notify,
.owner = THIS_MODULE .owner = THIS_MODULE
}; };
#endif
static DEVICE_ATTR_WO(compact); static DEVICE_ATTR_WO(compact);
static DEVICE_ATTR_RW(disksize); static DEVICE_ATTR_RW(disksize);
......
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