]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge tag 'for-6.8/block-2024-01-18' of git://git.kernel.dk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Jan 2024 02:22:40 +0000 (18:22 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Jan 2024 02:22:40 +0000 (18:22 -0800)
Pull block fixes from Jens Axboe:

 - NVMe pull request via Keith:
      - tcp, fc, and rdma target fixes (Maurizio, Daniel, Hannes,
        Christoph)
      - discard fixes and improvements (Christoph)
      - timeout debug improvements (Keith, Max)
      - various cleanups (Daniel, Max, Giuxen)
      - trace event string fixes (Arnd)
      - shadow doorbell setup on reset fix (William)
      - a write zeroes quirk for SK Hynix (Jim)

 - MD pull request via Song:
      - Sparse warning since v6.0 (Bart)
      - /proc/mdstat regression since v6.7 (Yu Kuai)

 - Use symbolic error value (Christian)

 - IO Priority documentation update (Christian)

 - Fix for accessing queue limits without having entered the queue
   (Christoph, me)

 - Fix for loop dio support (Christoph)

 - Move null_blk off deprecated ida interface (Christophe)

 - Ensure nbd initializes full msghdr (Eric)

 - Fix for a regression with the folio conversion, which is now easier
   to hit because of an unrelated change (Matthew)

 - Remove redundant check in virtio-blk (Li)

 - Fix for a potential hang in sbitmap (Ming)

 - Fix for partial zone appending (Damien)

 - Misc changes and fixes (Bart, me, Kemeng, Dmitry)

* tag 'for-6.8/block-2024-01-18' of git://git.kernel.dk/linux: (45 commits)
  Documentation: block: ioprio: Update schedulers
  loop: fix the the direct I/O support check when used on top of block devices
  blk-mq: Remove the hctx 'run' debugfs attribute
  nbd: always initialize struct msghdr completely
  block: Fix iterating over an empty bio with bio_for_each_folio_all
  block: bio-integrity: fix kcalloc() arguments order
  virtio_blk: remove duplicate check if queue is broken in virtblk_done
  sbitmap: remove stale comment in sbq_calc_wake_batch
  block: Correct a documentation comment in blk-cgroup.c
  null_blk: Remove usage of the deprecated ida_simple_xx() API
  block: ensure we hold a queue reference when using queue limits
  blk-mq: rename blk_mq_can_use_cached_rq
  block: print symbolic error name instead of error code
  blk-mq: fix IO hang from sbitmap wakeup race
  nvmet-rdma: avoid circular locking dependency on install_queue()
  nvmet-tcp: avoid circular locking dependency on install_queue()
  nvme-pci: set doorbell config before unquiescing
  block: fix partial zone append completion handling in req_bio_endio()
  block/iocost: silence warning on 'last_period' potentially being unused
  md/raid1: Use blk_opf_t for read and write operations
  ...

1  2 
block/blk-mq.c
drivers/block/loop.c
drivers/block/virtio_blk.c
drivers/md/md.c
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h
drivers/nvme/host/pci.c
drivers/nvme/host/rdma.c
drivers/nvme/host/tcp.c

diff --cc block/blk-mq.c
Simple merge
Simple merge
Simple merge
diff --cc drivers/md/md.c
Simple merge
Simple merge
Simple merge
Simple merge
index c89503da24d7a8300ae21c22e3a58df8d382a668,2e77c0f25f710e7ad19ea2c99496961a93b0b0a3..11dde0d830442df31c74499655e86566ab995a66
@@@ -1946,11 -1941,16 +1946,16 @@@ static enum blk_eh_timer_return nvme_rd
        struct nvme_rdma_request *req = blk_mq_rq_to_pdu(rq);
        struct nvme_rdma_queue *queue = req->queue;
        struct nvme_rdma_ctrl *ctrl = queue->ctrl;
-       dev_warn(ctrl->ctrl.device, "I/O %d QID %d timeout\n",
-                rq->tag, nvme_rdma_queue_idx(queue));
+       u8 opcode = req->req.cmd->common.opcode;
+       u8 fctype = req->req.cmd->fabrics.fctype;
+       int qid = nvme_rdma_queue_idx(queue);
+       dev_warn(ctrl->ctrl.device,
+                "I/O tag %d (%04x) opcode %#x (%s) QID %d timeout\n",
+                rq->tag, nvme_cid(rq), opcode,
+                nvme_opcode_str(qid, opcode, fctype), qid);
  
 -      if (ctrl->ctrl.state != NVME_CTRL_LIVE) {
 +      if (nvme_ctrl_state(&ctrl->ctrl) != NVME_CTRL_LIVE) {
                /*
                 * If we are resetting, connecting or deleting we should
                 * complete immediately because we may block controller
index 08805f0278106483c10b2b9c787aa35c36e4dcbe,b234f0674aebbd3ddbdacab5f7213e122adb907c..d058d990532bfcf6dd521cfa51f411f60f5913fd
@@@ -2433,11 -2425,11 +2432,11 @@@ static enum blk_eh_timer_return nvme_tc
        int qid = nvme_tcp_queue_id(req->queue);
  
        dev_warn(ctrl->device,
-               "queue %d: timeout cid %#x type %d opcode %#x (%s)\n",
-               nvme_tcp_queue_id(req->queue), nvme_cid(rq), pdu->hdr.type,
-               opc, nvme_opcode_str(qid, opc, fctype));
+                "I/O tag %d (%04x) type %d opcode %#x (%s) QID %d timeout\n",
+                rq->tag, nvme_cid(rq), pdu->hdr.type, opc,
+                nvme_opcode_str(qid, opc, fctype), qid);
  
 -      if (ctrl->state != NVME_CTRL_LIVE) {
 +      if (nvme_ctrl_state(ctrl) != NVME_CTRL_LIVE) {
                /*
                 * If we are resetting, connecting or deleting we should
                 * complete immediately because we may block controller