Merge tag 'for-5.9/drivers-20200803' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Aug 2020 17:51:40 +0000 (10:51 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 Aug 2020 17:51:40 +0000 (10:51 -0700)
Pull block driver updates from Jens Axboe:

 - NVMe:
      - ZNS support (Aravind, Keith, Matias, Niklas)
      - Misc cleanups, optimizations, fixes (Baolin, Chaitanya, David,
        Dongli, Max, Sagi)

 - null_blk zone capacity support (Aravind)

 - MD:
      - raid5/6 fixes (ChangSyun)
      - Warning fixes (Damien)
      - raid5 stripe fixes (Guoqing, Song, Yufen)
      - sysfs deadlock fix (Junxiao)
      - raid10 deadlock fix (Vitaly)

 - struct_size conversions (Gustavo)

 - Set of bcache updates/fixes (Coly)

* tag 'for-5.9/drivers-20200803' of git://git.kernel.dk/linux-block: (117 commits)
  md/raid5: Allow degraded raid6 to do rmw
  md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
  raid5: don't duplicate code for different paths in handle_stripe
  raid5-cache: hold spinlock instead of mutex in r5c_journal_mode_show
  md: print errno in super_written
  md/raid5: remove the redundant setting of STRIPE_HANDLE
  md: register new md sysfs file 'uuid' read-only
  md: fix max sectors calculation for super 1.0
  nvme-loop: remove extra variable in create ctrl
  nvme-loop: set ctrl state connecting after init
  nvme-multipath: do not fall back to __nvme_find_path() for non-optimized paths
  nvme-multipath: fix logic for non-optimized paths
  nvme-rdma: fix controller reset hang during traffic
  nvme-tcp: fix controller reset hang during traffic
  nvmet: introduce the passthru Kconfig option
  nvmet: introduce the passthru configfs interface
  nvmet: Add passthru enable/disable helpers
  nvmet: add passthru code to process commands
  nvme: export nvme_find_get_ns() and nvme_put_ns()
  nvme: introduce nvme_ctrl_get_by_path()
  ...

12 files changed:
1  2 
drivers/acpi/property.c
drivers/md/bcache/request.c
drivers/md/bcache/super.c
drivers/md/md.c
drivers/md/md.h
drivers/md/raid10.c
drivers/md/raid5.c
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h
drivers/nvme/host/pci.c
drivers/nvme/host/tcp.c
include/linux/blkdev.h

Simple merge
Simple merge
Simple merge
diff --cc drivers/md/md.c
Simple merge
diff --cc drivers/md/md.h
Simple merge
Simple merge
Simple merge
@@@ -1097,14 -1270,10 +1270,13 @@@ static int nvme_identify_ns_descs(struc
                struct nvme_ns_ids *ids)
  {
        struct nvme_command c = { };
-       int status;
+       bool csi_seen = false;
+       int status, pos, len;
        void *data;
-       int pos;
-       int len;
  
 +      if (ctrl->quirks & NVME_QUIRK_NO_NS_DESC_LIST)
 +              return 0;
 +
        c.identify.opcode = nvme_admin_identify;
        c.identify.nsid = cpu_to_le32(nsid);
        c.identify.cns = NVME_ID_CNS_NS_DESC_LIST;
@@@ -699,11 -727,38 +744,41 @@@ static inline void nvme_mpath_wait_free
  static inline void nvme_mpath_start_freeze(struct nvme_subsystem *subsys)
  {
  }
 +static inline void nvme_mpath_update_disk_size(struct gendisk *disk)
 +{
 +}
  #endif /* CONFIG_NVME_MULTIPATH */
  
+ #ifdef CONFIG_BLK_DEV_ZONED
+ int nvme_update_zone_info(struct gendisk *disk, struct nvme_ns *ns,
+                         unsigned lbaf);
+ int nvme_report_zones(struct gendisk *disk, sector_t sector,
+                     unsigned int nr_zones, report_zones_cb cb, void *data);
+ blk_status_t nvme_setup_zone_mgmt_send(struct nvme_ns *ns, struct request *req,
+                                      struct nvme_command *cmnd,
+                                      enum nvme_zone_mgmt_action action);
+ #else
+ #define nvme_report_zones NULL
+ static inline blk_status_t nvme_setup_zone_mgmt_send(struct nvme_ns *ns,
+               struct request *req, struct nvme_command *cmnd,
+               enum nvme_zone_mgmt_action action)
+ {
+       return BLK_STS_NOTSUPP;
+ }
+ static inline int nvme_update_zone_info(struct gendisk *disk,
+                                       struct nvme_ns *ns,
+                                       unsigned lbaf)
+ {
+       dev_warn(ns->ctrl->device,
+                "Please enable CONFIG_BLK_DEV_ZONED to support ZNS devices\n");
+       return -EPROTONOSUPPORT;
+ }
+ #endif
  #ifdef CONFIG_NVM
  int nvme_nvm_register(struct nvme_ns *ns, char *disk_name, int node);
  void nvme_nvm_unregister(struct nvme_ns *ns);
Simple merge
Simple merge
Simple merge