Hi Linus, 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. You'll get a few merge conflicts pulling this into master, due to changes that have gone in after I forked off this branch. They are all trivial, I've included my resolution at the end of the email. The only one that is a little illogical is the last bit of nvme/host/core.c, where a || is changed to a && while merging. This is due to a fixup for the code being replaced in your master, but which wasn't carried through on the nvme tree side. The last conflict is in the cdrom Makefile, due to the SPDX late changes. Note that due to a screwup of mine, the 60 latest patches (or so) have been rebased on Friday. This has, naturally, screwed up the commit time for particularly the NVMe multipath changes. Error is all mine, the NVMe bits have been pretty smooth this round. Please pull! git://git.kernel.dk/linux-block.git for-4.15/block ---------------------------------------------------------------- Arnd Bergmann (2): block: fix CDROM dependency on BLK_DEV skd: use ktime_get_real_seconds() Bart Van Assche (10): block: Fix a race between blk_cleanup_queue() and timeout handling block: Rework drivers/cdrom/Makefile blk-mq: Make blk_mq_get_request() error path less confusing blk-mq: Avoid that request queue removal can trigger list corruption block: Introduce blk_get_request_flags() block: Introduce BLK_MQ_REQ_PREEMPT ide, scsi: Tell the block layer at request allocation time about preempt requests block: Add the QUEUE_FLAG_PREEMPT_ONLY request queue flag block, scsi: Make SCSI quiesce and resume work reliably block, nvme: Introduce blk_mq_req_flags_t Chaitanya Kulkarni (1): nvme-pci: add SGL support Christoph Hellwig (38): block: move __elv_next_request to blk-core.c block: remove QUEUE_FLAG_STACKABLE nvme: simplify compat_ioctl handling nvme: use ida_simple_{get,remove} for the controller instance nvme: use kref_get_unless_zero in nvme_find_get_ns nvme: simplify nvme_open nvme: switch controller refcounting to use struct device nvme: get rid of nvme_ctrl_list nvme: check for a live controller in nvme_dev_open nvme-fc: merge __nvme_fc_schedule_delete_work into __nvme_fc_del_ctrl nvme: move controller deletion to common code nvme-rdma: remove nvme_rdma_remove_ctrl nvme: consolidate common code from ->reset_work block: move REQ_NOWAIT block: add REQ_DRV bit block: provide a direct_make_request helper block: add a blk_steal_bios helper block: don't look at the struct device dev_t in disk_devt block: introduce GENHD_FL_HIDDEN block: add a poll_fn callback to struct request_queue block: fix peeking requests during PM nvme: move the dying queue check from cancel to completion nvme: always unregister the integrity profile in __nvme_revalidate_disk nvme: don't pass struct nvme_ns to nvme_init_integrity nvme: don't pass struct nvme_ns to nvme_config_discard nvme: set the chunk size before freezing the queue nvme: split __nvme_revalidate_disk nvme: fix and clarify the check for missing metadata block: remove __bio_kmap_atomic block: pass full fmode_t to blk_verify_command nvmet: better data length validation nvmet: kill nvmet_inline_bio_init nvme: track subsystems nvme: introduce a nvme_ns_ids structure nvme: track shared namespaces nvme: implement multipath access to nvme subsystems nvme: also expose the namespace identification sysfs files for mpath nodes xtensa/simdisk: fix compile error Christos Gkekas (1): mtip32xx: Clean up unused variables Colin Ian King (1): block: avoid null pointer dereference on null disk Coly Li (4): bcache: check ca->alloc_thread initialized before wake up it bcache: fix a comments typo in bch_alloc_sectors() bcache: rewrite multiple partitions support bcache: only permit to recovery read error when cache device is clean Corentin Labbe (1): block: cryptoloop - Fix build warning Dmitry Monakhov (1): block: Invalidate cache on discard v2 Elena Reshetova (1): bcache: convert cached_dev.count from atomic_t to refcount_t Eric Wheeler (1): bcache: update bio->bi_opf bypass/writeback REQ_ flag hints Greg Edwards (1): fs: guard_bio_eod() needs to consider partitions Hannes Reinecke (3): block: create 'slaves' and 'holders' entries for hidden gendisks nvme: create 'slaves' and 'holders' entries for hidden controllers nvme: expose subsys attribute to sysfs Hans Holmberg (10): lightnvm: pblk: prevent gc kicks when gc is not operational lightnvm: pblk: recover partially written lines correctly lightnvm: pblk: free full lines during recovery lightnvm: pblk: start gc if needed during init lightnvm: pblk: consider bad sectors in emeta during recovery lightnvm: pblk: shut down gc gracefully during exit lightnvm: pblk: add l2p crc debug printouts lightnvm: pblk: gc all lines in the pipeline before exit lightnvm: pblk: correct valid lba count calculation lightnvm: pblk: remove spinlock when freeing line metadata Hongxu Jia (1): ide: ide-atapi: fix compile error with defining macro DEBUG Ilya Dryomov (3): block: move CAP_SYS_ADMIN check in blkdev_roset() block: factor out __blkdev_issue_zero_pages() block: cope with WRITE ZEROES failing in blkdev_issue_zeroout() Israel Rukshin (4): nvme-rdma: Add BLK_MQ_F_NO_SCHED flag to admin tag set nvme-fc: Add BLK_MQ_F_NO_SCHED flag to admin tag set nvme-loop: Add BLK_MQ_F_NO_SCHED flag to admin tag set nvmet-rdma: update queue list during ib_device removal James Smart (21): nvmet: bump NVMET_NR_QUEUES to 128 nvme-fc: add uevent for auto-connect nvme-fc: create fc class and transport device nvme-fc: move remote port get/put/free location nvme-fc: correct io termination handling nvme-fc: correct io timeout behavior nvme: add duplicate_connect option nvme: add helper to compare options to controller nvme-rdma: add support for duplicate_connect option nvme-fc: add support for duplicate_connect option nvme-fc: remove NVME_FC_MAX_SEGMENTS nvme-fc: avoid workqueue flush stalls nvme-fc: change ctlr state assignments during reset/reconnect nvme-fc: add a dev_loss_tmo field to the remoteport nvme-fc: check connectivity before initiating reconnects nvme: allow controller RESETTING to RECONNECTING transition nvme-fc: add dev_loss_tmo timeout and remoteport resume support nvmet: fix fatal_err_work deadlock nvme-fc: fix localport resume using stale values nvme-fc: decouple ns references from lldd references lpfc: tie in to new dev_loss_tmo interface in nvme transport Javier González (34): lightnvm: pblk: initialize debug stat counter lightnvm: pblk: use right flag for GC allocation lightnvm: pblk: free padded entries in write buffer lightnvm: pblk: fix write I/O sync stat lightnvm: pblk: avoid deadlock on low LUN config lightnvm: pblk: fix min size for page mempool lightnvm: pblk: simplify work_queue mempool lightnvm: pblk: decouple read/erase mempools lightnvm: pblk: do not use a mempool for line bitmaps lightnvm: pblk: remove checks on mempool alloc. lightnvm: pblk: use constant for GC max inflight lightnvm: pblk: normalize ppa namings lightnvm: pblk: refactor read lba sanity check lightnvm: pblk: simplify data validity check on GC lightnvm: pblk: refactor read path on GC lightnvm: pblk: put bio on bio completion lightnvm: pblk: simplify path on REQ_PREFLUSH lightnvm: pblk: allocate bio size more accurately lightnvm: pblk: improve naming for internal req. lightnvm: pblk: refactor rqd alloc/free lightnvm: pblk: use rqd->end_io for completion lightnvm: pblk: check lba sanity on read path lightnvm: pblk: guarantee line integrity on reads lightnvm: pblk: remove redundant check on read path lightnvm: pblk: remove I/O dependency on write path lightnvm: pblk: enable 1 LUN configuration lightnvm: pblk: ensure right bad block calculation lightnvm: pblk: cleanup unused and static functions lightnvm: pblk: avoid being reported as hung on rated GC lightnvm: fail fast on passthrough commands lightnvm: implement generic path for sync I/O lightnvm: pblk: remove leftover testing function nvme: compare NQN string with right size nvme: fix eui_show() print format Jens Axboe (31): blk-mq-tag: kill unused tag enums blk-mq: wire up completion notifier for laptop mode buffer: have alloc_page_buffers() use __GFP_NOFAIL buffer: grow_dev_page() should use __GFP_NOFAIL for all cases buffer: eliminate the need to call free_more_memory() in __getblk_slow() fs: kill 'nr_pages' argument from wakeup_flusher_threads() writeback: switch wakeup_flusher_threads() to cyclic writeback writeback: remove 'range_cyclic' argument for wb_start_writeback() writeback: provide a wakeup_flusher_threads_bdi() writeback: pass in '0' for nr_pages writeback in laptop mode writeback: make wb_start_writeback() static writeback: move nr_pages == 0 logic to one location writeback: only allow one inflight and pending full flush blk-mq: document the need to have STARTED and COMPLETED share a byte writeback: eliminate work item allocation in bd_start_writeback() sysctl: remove /proc/sys/vm/nr_pdflush_threads backing-dev: kill unused pdflush_proc_obsolete() Revert "lightnvm: prevent bd removal if busy" elevator: lookup mq vs non-mq elevators elevator: allow name aliases mq-deadline: add 'deadline' as a name alias Merge branch 'nvme-4.15' of git://git.infradead.org/nvme into for-4.15/block cdrom: hide CONFIG_CDROM menu selection blktrace: fix unlocked access to init/start-stop/teardown blktrace: fix unlocked registration of tracepoints Revert "blk-mq: don't handle TAG_SHARED in restart" block: kill bio_kmap/kunmap_irq() blk-mq: fix issue with shared tag queue re-running blk-mq: only run the hardware queue if IO is pending blk-mq: improve tag waiting setup for non-shared tags blk-mq: fixup some comment typos and lengths Jianchao Wang (1): blk-mq: put the driver tag of nxt rq before first one is requeued Jiufei Xue (1): blk-throttle: fix null pointer dereference while throttling writeback IOs Josef Bacik (2): nbd: wait uninterruptible for the dead timeout nbd: don't start req until after the dead connection logic Keith Busch (8): nvme: Remove unused headers nvme: factor get log into a helper nvme: check admin passthru command effects nvme: centralize AEN defines nvme-fc: remove unused "queue_size" field nvme: remove handling of multiple AEN requests nvme: unexport starting async event work nvme: send uevent for some asynchronous events Kent Overstreet (1): bcache: Add Michael Lyle to MAINTAINERS Liang Chen (2): bcache: safeguard a dangerous addressing in closure_queue bcache: explicitly destroy mutex while exiting Luca Miccio (1): block,bfq: Disable writeback throttling Marc Olson (1): nvme: update timeout module parameter type Martin Wilck (1): nvme: fix visibility of "uuid" ns attribute Max Gurtovoy (2): nvme-rdma: align nvme_rdma_device structure nvme-rdma: fix nvme_rdma_create_queue_ib error flow Michael Lyle (7): bcache: don't write back data if reading it failed bcache: implement PI controller for writeback rate bcache: smooth writeback rate control bcache: writeback rate shouldn't artifically clamp bcache: rearrange writeback main thread ratelimit bcache: MAINTAINERS: set bcache to MAINTAINED bcache: writeback rate clamping: make 32 bit safe Mikulas Patocka (1): brd: remove unused brd_mutex Ming Lei (21): blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch blk-mq-sched: move actual dispatching into one helper sbitmap: introduce __sbitmap_for_each_set() block: kyber: check if there are requests in ctx in kyber_has_work() blk-mq: introduce .get_budget and .put_budget in blk_mq_ops blk-mq-sched: improve dispatching from sw queue scsi: allow passing in null rq to scsi_prep_state_check() scsi: implement .get_budget and .put_budget for blk-mq blk-mq: don't handle TAG_SHARED in restart blk-mq: don't restart queue when .get_budget returns BLK_STS_RESOURCE SCSI: don't get target/host busy_count in scsi_mq_get_budget() blk-mq: don't handle failure in .get_budget blk-flush: don't run queue for requests bypassing flush block: pass 'run_queue' to blk_mq_request_bypass_insert blk-flush: use blk_mq_request_bypass_insert() blk-mq-sched: decide how to handle flush rq via RQF_FLUSH_SEQ blk-mq: move blk_mq_put_driver_tag*() into blk-mq.h blk-mq: don't allocate driver tag upfront for flush rq blk-mq: put driver tag if dispatch budget can't be got nvme-pci: avoid dereference of symbol from unloaded module block: Make q_usage_counter also track legacy requests Minwoo Im (5): nvme-pci: fix typos in comments nvme: comment typo fixed in clearing AER null_blk: fix default values in documentation null_blk: add an usage for shared tags in documentation nvmet: fix comment typos in admin-cmd.c Nitzan Carmi (1): nvme-rdma: Add debug message when reaches timeout Omar Sandoval (1): kyber: fix hang on domain token wait queue Paolo Valente (5): block, bfq: fix wrong init of saved start time for weight raising block, bfq: check and switch back to interactive wr also on queue split block, bfq: let early-merged queues be weight-raised on split too block, bfq: decrease burst size when queues in burst exit block, bfq: fix unbalanced decrements of burst size Peter Foley (1): bcache: Avoid nested function definition Peter Zijlstra (1): blk-mq: attempt to fix atomic flag memory ordering Rakesh Pandit (19): writeback: merge try_to_writeback_inodes_sb_nr() into caller fs/block_dev: remove vfs_msg() interface lightnvm: prevent target type module removal when in use lightnvm: prevent bd removal if busy lightnvm: protect target type list with correct locks lightnvm: remove already calculated nr_chnls lightnvm: pblk: fix error path in pblk_lines_alloc_metadata lightnvm: include NVM Express driver if OCSSD is selected for build lightnvm: pblk: protect line bitmap while submitting meta io lightnvm: pblk: fix message if L2P MAP is in device lightnvm: pblk: improve error message if down_timeout fails lightnvm: pblk: print incompatible line version correctly lightnvm: pblk: reuse pblk_gc_should_kick lightnvm: pblk: fix changing GC group list for a line lightnvm: pblk: remove useless line lightnvm: remove unused argument from nvm_set_tgt_bb_tbl lightnvm: remove stale extern and unused exported symbols lightnvm: pblk: reduce arguments in __pblk_rb_update_l2p lightnvm: pblk: fix releases of kmem cache in error path Randy Dunlap (2): nvme: use menu Kconfig interface block: fix Sphinx kernel-doc warning Roy Shterman (1): nvmet: Change max_nsid in subsystem due to ns_disable if needed Sagi Grimberg (16): nvme-fabrics: request transport module block: introduce blk_mq_tagset_iter nvme: introduce nvme_reinit_tagset block: remove blk_mq_reinit_tagset nvme-rdma: pass tagset to directly nvme_rdma_free_tagset nvme-rdma: fix wrong logging message nvme-rdma: move assignment to declaration nvme-rdma: Check that reinit_request got a proper mr nvme-rdma: teardown admin/io queues once on error recovery nvme-rdma: Don't local invalidate if the queue is not live nvme-rdma: change queue flag semantics DELETING -> ALLOCATED nvme-rdma: stop controller reset if the controller is deleting nvme-rdma: reuse nvme_delete_ctrl when reconnect attempts expire nvme: flush reset_work before safely continuing with delete operation nvmet: remove redundant memset if failed to get_smart_log failed nvmet: remove redundant local variable Scott Bauer (1): MAINTAINERS: Remove Rafael from Opal maintainers. Shaohua Li (8): kthread: add a mechanism to store cgroup info blkcg: delete unused APIs block: make blkcg aware of kthread stored original cgroup info block/loop: make loop cgroup aware block: fix a build error blk-stat: delete useless code block: set request_list for request kthread: zero the kthread data structure Tang Junhui (1): bcache: update bucket_in_use in real time Tim Hansen (2): block: remove unnecessary NULL checks in bioset_integrity_free() block/bio: Remove null checks before mempool_destroy in bioset_free Wei Yongjun (1): nullb: fix error return code in null_init() Yafang Shao (2): writeback: schedule periodic writeback with sysctl mm/page-writeback.c: make changes of dirty_writeback_centisecs take effect immediately Yijing Wang (2): bcache: Remove redundant set_capacity bcache: remove unused parameter tang.junhui (1): bcache: fix wrong cache_misses statistics weiping zhang (7): null_blk: add "no_sched" module parameter blk-mq: remove unused function hctx_allow_merges blkcg: check pol->cpd_free_fn before free cpd null_blk: update usage hints for submit_queues null_blk: add usage hints for no_sched blk-mq: fix nr_requests wrong value when modify it from sysfs blkcg: add sanity check for blkcg policy operations .../ABI/obsolete/proc-sys-vm-nr_pdflush_threads | 5 - Documentation/block/biodoc.txt | 11 +- Documentation/block/null_blk.txt | 19 +- MAINTAINERS | 5 +- arch/xtensa/platforms/iss/simdisk.c | 4 +- block/bfq-iosched.c | 225 +++- block/bio-integrity.c | 7 +- block/bio.c | 40 +- block/blk-cgroup.c | 9 +- block/blk-core.c | 274 ++++- block/blk-flush.c | 37 +- block/blk-lib.c | 108 +- block/blk-mq-debugfs.c | 3 +- block/blk-mq-sched.c | 203 +-- block/blk-mq-tag.c | 11 +- block/blk-mq-tag.h | 7 +- block/blk-mq.c | 422 ++++--- block/blk-mq.h | 60 +- block/blk-settings.c | 2 +- block/blk-stat.c | 45 +- block/blk-throttle.c | 12 +- block/blk-timeout.c | 5 +- block/blk-wbt.c | 2 +- block/blk.h | 46 +- block/bsg.c | 18 +- block/elevator.c | 67 +- block/genhd.c | 70 +- block/ioctl.c | 19 +- block/kyber-iosched.c | 12 +- block/mq-deadline.c | 1 + block/scsi_ioctl.c | 8 +- drivers/block/Kconfig | 5 + drivers/block/brd.c | 1 - drivers/block/cryptoloop.c | 2 - drivers/block/loop.c | 13 + drivers/block/loop.h | 1 + drivers/block/mtip32xx/mtip32xx.c | 7 - drivers/block/nbd.c | 26 +- drivers/block/null_blk.c | 10 +- drivers/block/paride/Kconfig | 1 + drivers/block/skd_main.c | 3 +- drivers/cdrom/Makefile | 15 +- drivers/ide/Kconfig | 2 + drivers/ide/ide-atapi.c | 6 +- drivers/ide/ide-pm.c | 4 +- drivers/lightnvm/Kconfig | 3 +- drivers/lightnvm/core.c | 176 +-- drivers/lightnvm/pblk-cache.c | 24 +- drivers/lightnvm/pblk-core.c | 512 ++++---- drivers/lightnvm/pblk-gc.c | 289 +++-- drivers/lightnvm/pblk-init.c | 197 +-- drivers/lightnvm/pblk-map.c | 28 +- drivers/lightnvm/pblk-rb.c | 30 +- drivers/lightnvm/pblk-read.c | 274 +++-- drivers/lightnvm/pblk-recovery.c | 129 +- drivers/lightnvm/pblk-rl.c | 43 +- drivers/lightnvm/pblk-sysfs.c | 2 +- drivers/lightnvm/pblk-write.c | 229 ++-- drivers/lightnvm/pblk.h | 132 +- drivers/md/bcache/alloc.c | 15 +- drivers/md/bcache/bcache.h | 19 +- drivers/md/bcache/btree.c | 17 +- drivers/md/bcache/btree.h | 2 +- drivers/md/bcache/closure.h | 6 + drivers/md/bcache/request.c | 36 +- drivers/md/bcache/super.c | 52 +- drivers/md/bcache/sysfs.c | 28 +- drivers/md/bcache/util.c | 10 +- drivers/md/bcache/util.h | 4 +- drivers/md/bcache/writeback.c | 117 +- drivers/md/bcache/writeback.h | 6 +- drivers/md/bitmap.c | 2 +- drivers/md/dm-rq.c | 2 +- drivers/md/dm-table.c | 15 +- drivers/md/dm.c | 11 - drivers/nvme/Kconfig | 4 + drivers/nvme/host/Kconfig | 9 + drivers/nvme/host/Makefile | 1 + drivers/nvme/host/core.c | 1301 ++++++++++++++------ drivers/nvme/host/fabrics.c | 16 +- drivers/nvme/host/fabrics.h | 14 + drivers/nvme/host/fc.c | 793 +++++++++--- drivers/nvme/host/lightnvm.c | 86 +- drivers/nvme/host/multipath.c | 291 +++++ drivers/nvme/host/nvme.h | 169 ++- drivers/nvme/host/pci.c | 243 +++- drivers/nvme/host/rdma.c | 246 ++-- drivers/nvme/target/admin-cmd.c | 21 +- drivers/nvme/target/core.c | 23 + drivers/nvme/target/fc.c | 48 +- drivers/nvme/target/io-cmd.c | 20 +- drivers/nvme/target/loop.c | 66 +- drivers/nvme/target/nvmet.h | 6 +- drivers/nvme/target/rdma.c | 16 +- drivers/scsi/Kconfig | 3 +- drivers/scsi/lpfc/lpfc_attr.c | 5 + drivers/scsi/scsi_lib.c | 99 +- drivers/scsi/sg.c | 2 +- fs/block_dev.c | 20 +- fs/buffer.c | 70 +- fs/direct-io.c | 2 +- fs/fs-writeback.c | 153 +-- fs/iomap.c | 2 +- fs/ntfs/aops.c | 2 +- fs/ntfs/mft.c | 2 +- fs/sync.c | 2 +- include/linux/backing-dev-defs.h | 24 + include/linux/backing-dev.h | 4 - include/linux/bio.h | 25 - include/linux/blk-cgroup.h | 25 +- include/linux/blk-mq.h | 40 +- include/linux/blk_types.h | 16 +- include/linux/blkdev.h | 36 +- include/linux/buffer_head.h | 2 +- include/linux/elevator.h | 1 + include/linux/genhd.h | 4 +- include/linux/kthread.h | 11 + include/linux/lightnvm.h | 11 +- include/linux/nvme-fc-driver.h | 15 +- include/linux/nvme.h | 30 + include/linux/sbitmap.h | 64 +- include/linux/writeback.h | 30 +- include/scsi/scsi_device.h | 1 + include/trace/events/writeback.h | 1 - kernel/kthread.c | 66 +- kernel/sysctl.c | 5 - kernel/trace/blktrace.c | 90 +- mm/backing-dev.c | 20 - mm/page-writeback.c | 36 +- mm/page_io.c | 2 +- mm/vmscan.c | 2 +- 131 files changed, 5470 insertions(+), 3089 deletions(-) delete mode 100644 Documentation/ABI/obsolete/proc-sys-vm-nr_pdflush_threads create mode 100644 drivers/nvme/host/multipath.c diff --cc drivers/cdrom/Makefile index a95566ff47d3,7f3f43cc2257..0f3664b45f48 --- a/drivers/cdrom/Makefile +++ b/drivers/cdrom/Makefile @@@ -1,14 -1,2 +1,3 @@@ +# SPDX-License-Identifier: GPL-2.0 - # Makefile for the kernel cdrom device drivers. - # - # 30 Jan 1998, Michael Elizabeth Chastain, <mailto:mec@xxxxxxxxx> - # 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 + obj-$(CONFIG_CDROM) += cdrom.o + obj-$(CONFIG_GDROM) += gdrom.o diff --cc drivers/nvme/host/core.c index 37f9039bb9ca,993813ccdc0b..25da74d310d1 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@@ -1249,13 -1407,10 +1407,11 @@@ static int nvme_revalidate_disk(struct goto out; } + __nvme_revalidate_disk(disk, id); - 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_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; } diff --cc drivers/nvme/host/fc.c index be49d0f79381,6eb460b117d6..7ab0be55c7d0 --- a/drivers/nvme/host/fc.c +++ b/drivers/nvme/host/fc.c @@@ -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); -- Jens Axboe