Merge tag 'block-6.5-2023-08-11' of git://git.kernel.dk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Aug 2023 19:14:08 +0000 (12:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Aug 2023 19:14:08 +0000 (12:14 -0700)
Pull block fixes from Jens Axboe:

 - NVMe pull request via Keith:
      - Fixes for request_queue state (Ming)
      - Another uuid quirk (August)

 - RCU poll fix for NVMe (Ming)

 - Fix for an IO stall with polled IO (me)

 - Fix for blk-iocost stats enable/disable accounting (Chengming)

 - Regression fix for large pages for zram (Christoph)

* tag 'block-6.5-2023-08-11' of git://git.kernel.dk/linux:
  nvme: core: don't hold rcu read lock in nvme_ns_chr_uring_cmd_iopoll
  blk-iocost: fix queue stats accounting
  block: don't make REQ_POLLED imply REQ_NOWAIT
  block: get rid of unused plug->nowait flag
  zram: take device and not only bvec offset into account
  nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G
  nvme-rdma: fix potential unbalanced freeze & unfreeze
  nvme-tcp: fix potential unbalanced freeze & unfreeze
  nvme: fix possible hang when removing a controller during error recovery

1  2 
drivers/nvme/host/tcp.c

diff --combined drivers/nvme/host/tcp.c
@@@ -1014,7 -1014,7 +1014,7 @@@ static int nvme_tcp_try_send_data(struc
                        msg.msg_flags |= MSG_MORE;
  
                if (!sendpage_ok(page))
 -                      msg.msg_flags &= ~MSG_SPLICE_PAGES,
 +                      msg.msg_flags &= ~MSG_SPLICE_PAGES;
  
                bvec_set_page(&bvec, page, len, offset);
                iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, len);
@@@ -1868,6 -1868,7 +1868,7 @@@ static int nvme_tcp_configure_io_queues
                goto out_cleanup_connect_q;
  
        if (!new) {
+               nvme_start_freeze(ctrl);
                nvme_unquiesce_io_queues(ctrl);
                if (!nvme_wait_freeze_timeout(ctrl, NVME_IO_TIMEOUT)) {
                        /*
                         * to be safe.
                         */
                        ret = -ENODEV;
+                       nvme_unfreeze(ctrl);
                        goto out_wait_freeze_timed_out;
                }
                blk_mq_update_nr_hw_queues(ctrl->tagset,
@@@ -1980,7 -1982,6 +1982,6 @@@ static void nvme_tcp_teardown_io_queues
        if (ctrl->queue_count <= 1)
                return;
        nvme_quiesce_admin_queue(ctrl);
-       nvme_start_freeze(ctrl);
        nvme_quiesce_io_queues(ctrl);
        nvme_sync_io_queues(ctrl);
        nvme_tcp_stop_io_queues(ctrl);