Merge tag 'for-4.18/block-20180603' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Jun 2018 14:58:06 +0000 (07:58 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Jun 2018 14:58:06 +0000 (07:58 -0700)
Pull block updates from Jens Axboe:

 - clean up how we pass around gfp_t and
   blk_mq_req_flags_t (Christoph)

 - prepare us to defer scheduler attach (Christoph)

 - clean up drivers handling of bounce buffers (Christoph)

 - fix timeout handling corner cases (Christoph/Bart/Keith)

 - bcache fixes (Coly)

 - prep work for bcachefs and some block layer optimizations (Kent).

 - convert users of bio_sets to using embedded structs (Kent).

 - fixes for the BFQ io scheduler (Paolo/Davide/Filippo)

 - lightnvm fixes and improvements (Matias, with contributions from Hans
   and Javier)

 - adding discard throttling to blk-wbt (me)

 - sbitmap blk-mq-tag handling (me/Omar/Ming).

 - remove the sparc jsflash block driver, acked by DaveM.

 - Kyber scheduler improvement from Jianchao, making it more friendly
   wrt merging.

 - conversion of symbolic proc permissions to octal, from Joe Perches.
   Previously the block parts were a mix of both.

 - nbd fixes (Josef and Kevin Vigor)

 - unify how we handle the various kinds of timestamps that the block
   core and utility code uses (Omar)

 - three NVMe pull requests from Keith and Christoph, bringing AEN to
   feature completeness, file backed namespaces, cq/sq lock split, and
   various fixes

 - various little fixes and improvements all over the map

* tag 'for-4.18/block-20180603' of git://git.kernel.dk/linux-block: (196 commits)
  blk-mq: update nr_requests when switching to 'none' scheduler
  block: don't use blocking queue entered for recursive bio submits
  dm-crypt: fix warning in shutdown path
  lightnvm: pblk: take bitmap alloc. out of critical section
  lightnvm: pblk: kick writer on new flush points
  lightnvm: pblk: only try to recover lines with written smeta
  lightnvm: pblk: remove unnecessary bio_get/put
  lightnvm: pblk: add possibility to set write buffer size manually
  lightnvm: fix partial read error path
  lightnvm: proper error handling for pblk_bio_add_pages
  lightnvm: pblk: fix smeta write error path
  lightnvm: pblk: garbage collect lines with failed writes
  lightnvm: pblk: rework write error recovery path
  lightnvm: pblk: remove dead function
  lightnvm: pass flag on graceful teardown to targets
  lightnvm: pblk: check for chunk size before allocating it
  lightnvm: pblk: remove unnecessary argument
  lightnvm: pblk: remove unnecessary indirection
  lightnvm: pblk: return NVM_ error on failed submission
  lightnvm: pblk: warn in case of corrupted write buffer
  ...

13 files changed:
1  2 
MAINTAINERS
drivers/ata/libata-eh.c
drivers/block/loop.c
drivers/block/rbd.c
drivers/md/dm-integrity.c
drivers/md/dm.c
drivers/mmc/core/block.c
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h
drivers/nvme/host/pci.c
drivers/s390/block/dasd.c
drivers/scsi/scsi_transport_srp.c
drivers/scsi/sg.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc drivers/md/dm.c
Simple merge
Simple merge
index b9ca782fe82dd54d4120ccf93524c52361cded38,ef2a0af41fdee925174cf2890d4e1a8dc858bd1b..04a20da767868e84f5eb9a24752dc0e02f5901aa
@@@ -99,8 -99,16 +99,17 @@@ static struct class *nvme_subsys_class
  
  static void nvme_ns_remove(struct nvme_ns *ns);
  static int nvme_revalidate_disk(struct gendisk *disk);
 +static void nvme_put_subsystem(struct nvme_subsystem *subsys);
  
+ static void nvme_queue_scan(struct nvme_ctrl *ctrl)
+ {
+       /*
+        * Only new queue scan work when admin and IO queues are both alive
+        */
+       if (ctrl->state == NVME_CTRL_LIVE)
+               queue_work(nvme_wq, &ctrl->scan_work);
+ }
  int nvme_reset_ctrl(struct nvme_ctrl *ctrl)
  {
        if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING))
Simple merge
index 17a0190bd88fb23e9d525a7f97c877d4b8c2dbc1,4d0bb0e454016f74dd62a2b09c54a60a6c9f3803..e526437bacbf7fc5f5618ba954ae54f84b799c2f
@@@ -2710,10 -2727,11 +2736,12 @@@ static const struct pci_device_id nvme_
                .driver_data = NVME_QUIRK_STRIPE_SIZE |
                                NVME_QUIRK_DEALLOCATE_ZEROES, },
        { PCI_VDEVICE(INTEL, 0xf1a5),   /* Intel 600P/P3100 */
 -              .driver_data = NVME_QUIRK_NO_DEEPEST_PS },
 +              .driver_data = NVME_QUIRK_NO_DEEPEST_PS |
 +                              NVME_QUIRK_MEDIUM_PRIO_SQ },
        { PCI_VDEVICE(INTEL, 0x5845),   /* Qemu emulated controller */
                .driver_data = NVME_QUIRK_IDENTIFY_CNS, },
+       { PCI_DEVICE(0x1bb1, 0x0100),   /* Seagate Nytro Flash Storage */
+               .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
        { PCI_DEVICE(0x1c58, 0x0003),   /* HGST adapter */
                .driver_data = NVME_QUIRK_DELAY_BEFORE_CHK_RDY, },
        { PCI_DEVICE(0x1c58, 0x0023),   /* WDC SN200 adapter */
index 02c03e418c27f7c505d769cc27ba1f29a1b76d4d,b0e89ca48a3ceaf480036633397b5b53943461f7..cb9b685118da826cf2ef780a30b333094a66c6a3
@@@ -3065,9 -3064,8 +3065,9 @@@ enum blk_eh_timer_return dasd_times_out
        unsigned long flags;
        int rc = 0;
  
 +      cqr = *((struct dasd_ccw_req **) blk_mq_rq_to_pdu(req));
        if (!cqr)
-               return BLK_EH_NOT_HANDLED;
+               return BLK_EH_DONE;
  
        spin_lock_irqsave(&cqr->dq->lock, flags);
        device = cqr->startdev ? cqr->startdev : block->base;
index 456ce9f19569f325dfdcf671fc13c24a36016788,a9c1c991da354c6dc194708f9d40f58f14992d29..4e46fdb2d7c997597c9bcab10d393897a6e105e4
@@@ -617,10 -600,9 +617,10 @@@ enum blk_eh_timer_return srp_timed_out(
        struct srp_rport *rport = shost_to_rport(shost);
  
        pr_debug("timeout for sdev %s\n", dev_name(&sdev->sdev_gendev));
 -      return rport->fast_io_fail_tmo < 0 && rport->dev_loss_tmo < 0 &&
 +      return rport && rport->fast_io_fail_tmo < 0 &&
 +              rport->dev_loss_tmo < 0 &&
                i->f->reset_timer_if_blocked && scsi_device_blocked(sdev) ?
-               BLK_EH_RESET_TIMER : BLK_EH_NOT_HANDLED;
+               BLK_EH_RESET_TIMER : BLK_EH_DONE;
  }
  EXPORT_SYMBOL(srp_timed_out);
  
Simple merge