Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 14 Nov 2017 23:32:19 +0000 (15:32 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 14 Nov 2017 23:32:19 +0000 (15:32 -0800)
Pull core block layer updates from Jens Axboe:
 "This is the main pull request for block storage for 4.15-rc1.

  Nothing out of the ordinary in here, and no API changes or anything
  like that. Just various new features for drivers, core changes, etc.
  In particular, this pull request contains:

   - A patch series from Bart, closing the whole on blk/scsi-mq queue
     quescing.

   - A series from Christoph, building towards hidden gendisks (for
     multipath) and ability to move bio chains around.

   - NVMe
        - Support for native multipath for NVMe (Christoph).
        - Userspace notifications for AENs (Keith).
        - Command side-effects support (Keith).
        - SGL support (Chaitanya Kulkarni)
        - FC fixes and improvements (James Smart)
        - Lots of fixes and tweaks (Various)

   - bcache
        - New maintainer (Michael Lyle)
        - Writeback control improvements (Michael)
        - Various fixes (Coly, Elena, Eric, Liang, et al)

   - lightnvm updates, mostly centered around the pblk interface
     (Javier, Hans, and Rakesh).

   - Removal of unused bio/bvec kmap atomic interfaces (me, Christoph)

   - Writeback series that fix the much discussed hundreds of millions
     of sync-all units. This goes all the way, as discussed previously
     (me).

   - Fix for missing wakeup on writeback timer adjustments (Yafang
     Shao).

   - Fix laptop mode on blk-mq (me).

   - {mq,name} tupple lookup for IO schedulers, allowing us to have
     alias names. This means you can use 'deadline' on both !mq and on
     mq (where it's called mq-deadline). (me).

   - blktrace race fix, oopsing on sg load (me).

   - blk-mq optimizations (me).

   - Obscure waitqueue race fix for kyber (Omar).

   - NBD fixes (Josef).

   - Disable writeback throttling by default on bfq, like we do on cfq
     (Luca Miccio).

   - Series from Ming that enable us to treat flush requests on blk-mq
     like any other request. This is a really nice cleanup.

   - Series from Ming that improves merging on blk-mq with schedulers,
     getting us closer to flipping the switch on scsi-mq again.

   - BFQ updates (Paolo).

   - blk-mq atomic flags memory ordering fixes (Peter Z).

   - Loop cgroup support (Shaohua).

   - Lots of minor fixes from lots of different folks, both for core and
     driver code"

* 'for-4.15/block' of git://git.kernel.dk/linux-block: (294 commits)
  nvme: fix visibility of "uuid" ns attribute
  blk-mq: fixup some comment typos and lengths
  ide: ide-atapi: fix compile error with defining macro DEBUG
  blk-mq: improve tag waiting setup for non-shared tags
  brd: remove unused brd_mutex
  blk-mq: only run the hardware queue if IO is pending
  block: avoid null pointer dereference on null disk
  fs: guard_bio_eod() needs to consider partitions
  xtensa/simdisk: fix compile error
  nvme: expose subsys attribute to sysfs
  nvme: create 'slaves' and 'holders' entries for hidden controllers
  block: create 'slaves' and 'holders' entries for hidden gendisks
  nvme: also expose the namespace identification sysfs files for mpath nodes
  nvme: implement multipath access to nvme subsystems
  nvme: track shared namespaces
  nvme: introduce a nvme_ns_ids structure
  nvme: track subsystems
  block, nvme: Introduce blk_mq_req_flags_t
  block, scsi: Make SCSI quiesce and resume work reliably
  block: Add the QUEUE_FLAG_PREEMPT_ONLY request queue flag
  ...

60 files changed:
1  2 
MAINTAINERS
block/bio.c
block/blk-lib.c
block/blk-mq-debugfs.c
block/blk-mq-tag.h
block/blk-mq.h
block/blk-throttle.c
block/blk-wbt.c
block/blk.h
block/genhd.c
drivers/block/Kconfig
drivers/block/nbd.c
drivers/block/null_blk.c
drivers/block/paride/Kconfig
drivers/block/skd_main.c
drivers/cdrom/Makefile
drivers/ide/ide-pm.c
drivers/md/bcache/alloc.c
drivers/md/bcache/bcache.h
drivers/md/bcache/btree.c
drivers/md/bcache/btree.h
drivers/md/bcache/closure.h
drivers/md/bcache/request.c
drivers/md/bcache/sysfs.c
drivers/md/bcache/util.h
drivers/md/bcache/writeback.c
drivers/md/bcache/writeback.h
drivers/md/dm.c
drivers/nvme/host/Makefile
drivers/nvme/host/core.c
drivers/nvme/host/fc.c
drivers/nvme/host/pci.c
drivers/nvme/host/rdma.c
drivers/nvme/target/core.c
drivers/nvme/target/nvmet.h
drivers/scsi/scsi_lib.c
drivers/scsi/sg.c
fs/block_dev.c
fs/buffer.c
fs/direct-io.c
fs/iomap.c
fs/sync.c
include/linux/backing-dev-defs.h
include/linux/backing-dev.h
include/linux/blk-cgroup.h
include/linux/blk-mq.h
include/linux/blk_types.h
include/linux/blkdev.h
include/linux/buffer_head.h
include/linux/elevator.h
include/linux/genhd.h
include/linux/kthread.h
include/linux/lightnvm.h
include/linux/writeback.h
include/scsi/scsi_device.h
include/trace/events/writeback.h
kernel/kthread.c
kernel/sysctl.c
mm/page_io.c
mm/vmscan.c

diff --cc MAINTAINERS
Simple merge
diff --cc block/bio.c
Simple merge
diff --cc block/blk-lib.c
Simple merge
Simple merge
Simple merge
diff --cc block/blk-mq.h
Simple merge
Simple merge
diff --cc block/blk-wbt.c
Simple merge
diff --cc block/blk.h
Simple merge
diff --cc block/genhd.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index a95566ff47d30043994642901b6341cc8bb78ec1,7f3f43cc22574f516f6b962c8fa281fdb9c6d46e..0f3664b45f485821bdf60dfe34d27d15d4fa4e5c
@@@ -1,14 -1,2 +1,3 @@@
- # Makefile for the kernel cdrom device drivers.
- #
- # 30 Jan 1998, Michael Elizabeth Chastain, <mailto:mec@shout.net>
- # Rewritten to use lists instead of if-statements.
- # Each configuration option enables a list of files.
- obj-$(CONFIG_BLK_DEV_IDECD)   +=              cdrom.o
- obj-$(CONFIG_BLK_DEV_SR)      +=              cdrom.o
- obj-$(CONFIG_PARIDE_PCD)      +=              cdrom.o
- obj-$(CONFIG_CDROM_PKTCDVD)   +=              cdrom.o
- obj-$(CONFIG_GDROM)           += gdrom.o      cdrom.o
 +# SPDX-License-Identifier: GPL-2.0
+ obj-$(CONFIG_CDROM)   += cdrom.o
+ obj-$(CONFIG_GDROM)   += gdrom.o
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc drivers/md/dm.c
Simple merge
Simple merge
index 37f9039bb9cab29892f783ddb45a459809c3805c,993813ccdc0b679f9357a85cb1389611fcd1d21a..25da74d310d1bbd5e7c62f9a35de94f6279fbc25
@@@ -1249,13 -1407,10 +1407,11 @@@ static int nvme_revalidate_disk(struct 
                goto out;
        }
  
-       nvme_report_ns_ids(ctrl, ns->ns_id, id, eui64, nguid, &uuid);
-       if (!uuid_equal(&ns->uuid, &uuid) ||
-           memcmp(&ns->nguid, &nguid, sizeof(ns->nguid)) ||
-           memcmp(&ns->eui, &eui64, sizeof(ns->eui))) {
 +      __nvme_revalidate_disk(disk, id);
+       nvme_report_ns_ids(ctrl, ns->head->ns_id, id, &ids);
+       if (!nvme_ns_ids_equal(&ns->head->ids, &ids)) {
                dev_err(ctrl->device,
-                       "identifiers changed for nsid %d\n", ns->ns_id);
+                       "identifiers changed for nsid %d\n", ns->head->ns_id);
                ret = -ENODEV;
        }
  
index be49d0f793816cae0a9629665230acf248ab85ec,6eb460b117d6faf5d753319782a29a4f266f0599..7ab0be55c7d063b31f1a9525a2961308b0d8a274
@@@ -2760,7 -3104,7 +3104,8 @@@ nvme_fc_init_ctrl(struct device *dev, s
        ctrl->rport = rport;
        ctrl->dev = lport->dev;
        ctrl->cnum = idx;
+       ctrl->assoc_active = false;
 +      init_waitqueue_head(&ctrl->ioabort_wait);
  
        get_device(ctrl->dev);
        kref_init(&ctrl->ref);
Simple merge
index 0ebb539f3bd3a7d7a6e18753bc4fefa402a1b626,c8d854474a5b6ce50b37d4e63ef248ff219cce0a..4f9bf2f815c399f3f7f39d5b6d485dbe75a2466f
@@@ -568,15 -560,9 +560,15 @@@ static void nvme_rdma_stop_queue(struc
  
  static void nvme_rdma_free_queue(struct nvme_rdma_queue *queue)
  {
-       if (test_and_set_bit(NVME_RDMA_Q_DELETING, &queue->flags))
+       if (!test_and_clear_bit(NVME_RDMA_Q_ALLOCATED, &queue->flags))
                return;
  
 +      if (nvme_rdma_queue_idx(queue) == 0) {
 +              nvme_rdma_free_qe(queue->device->dev,
 +                      &queue->ctrl->async_event_sqe,
 +                      sizeof(struct nvme_command), DMA_TO_DEVICE);
 +      }
 +
        nvme_rdma_destroy_queue_ib(queue);
        rdma_destroy_id(queue->cm_id);
  }
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/block_dev.c
Simple merge
diff --cc fs/buffer.c
Simple merge
diff --cc fs/direct-io.c
Simple merge
diff --cc fs/iomap.c
Simple merge
diff --cc fs/sync.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/sysctl.c
Simple merge
diff --cc mm/page_io.c
Simple merge
diff --cc mm/vmscan.c
Simple merge