On 8/4/20 9:39 AM, Jens Axboe wrote: > Hi Linus, > > Changes in this pull request: > > - 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) > > > Please pull! Forgot to mention that this will trigger a merge conflict with master, due to this commit that went in late for 5.8: commit 5bedd3afee8eb01ccd256f0cd2cc0fa6f841417a Author: Christoph Hellwig <hch@xxxxxx> Date: Tue Jul 28 13:09:03 2020 +0200 nvme: add a Identify Namespace Identification Descriptor list quirk and the resolution is simple, just delete the identified section. Below is my merge: diff --cc drivers/nvme/host/core.c index 6bdcdd984394,05aa568a60af..767d62985bba --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@@ -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; diff --cc drivers/nvme/host/nvme.h index 9c5b82af7978,c5c1bac797aa..ebb8c3ed3885 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@@ -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); -- Jens Axboe