mbox series

[GIT,PULL] Block driver changes for 5.9-rc1

Message ID ea8f5f71-477c-1668-cef6-a30c8d1aa3e6@kernel.dk (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] Block driver changes for 5.9-rc1 | expand

Pull-request

git://git.kernel.dk/linux-block.git tags/for-5.9/drivers-20200803

Message

Jens Axboe Aug. 4, 2020, 3:39 p.m. UTC
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!

The following changes since commit 0e6e255e7a58cdf4ee4163f83deeb5ce4946051e:

  block: remove a bogus warning in __submit_bio_noacct_mq (2020-07-07 11:45:59 -0600)

are available in the Git repository at:

  git://git.kernel.dk/linux-block.git tags/for-5.9/drivers-20200803

for you to fetch changes up to f59589fc89665102923725e80e12f782d5f74f67:

  Merge branch 'md-next' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-5.9/drivers (2020-08-03 06:38:44 -0600)

----------------------------------------------------------------
for-5.9/drivers-20200803

----------------------------------------------------------------
Aravind Ramesh (1):
      null_blk: introduce zone capacity for zoned device

Artur Paszkiewicz (1):
      md: improve io stats accounting

Baolin Wang (7):
      nvme: use USEC_PER_SEC instead of magic numbers
      nvme-pci: remove redundant segment validation
      nvme-pci: fix some comments issues
      nvme-pci: add a blank line after declarations
      nvme-pci: use the consistent return type of nvme_pci_iod_alloc_size()
      nvme-pci: use standard block status symbolic names
      nvme: remove redundant validation in nvme_start_ctrl()

Chaitanya Kulkarni (11):
      nvme-core: use u16 type for directives
      nvme-core: use u16 type for ctrl->sqsize
      nvme-pci: use unsigned for io queue depth
      nvme-pci: code cleanup for nvme_alloc_host_mem()
      nvmet: use unsigned type for u64
      nvme-core: replace ctrl page size with a macro
      nvme-pci: use max of PRP or SGL for iod size
      nvmet: use xarray for ctrl ns storing
      nvmet: introduce the passthru Kconfig option
      nvme-loop: set ctrl state connecting after init
      nvme-loop: remove extra variable in create ctrl

ChangSyun Peng (2):
      md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
      md/raid5: Allow degraded raid6 to do rmw

Christoph Hellwig (1):
      nvme: remove ns->disk checks

Christophe JAILLET (1):
      rsxx: switch from 'pci_free_consistent()' to 'dma_free_coherent()'

Colin Ian King (1):
      md: raid0/linear: fix dereference before null check on pointer mddev

Coly Li (21):
      bcache: allocate meta data pages as compound pages
      bcache: avoid nr_stripes overflow in bcache_device_init()
      bcache: fix overflow in offset_to_stripe()
      bcache: add read_super_common() to read major part of super block
      bcache: add more accurate error information in read_super_common()
      bcache: disassemble the big if() checks in bch_cache_set_alloc()
      bcache: fix super block seq numbers comparision in register_cache_set()
      bcache: increase super block version for cache device and backing device
      bcache: move bucket related code into read_super_common()
      bcache: struct cache_sb is only for in-memory super block now
      bcache: introduce meta_bucket_pages() related helper routines
      bcache: handle c->uuids properly for bucket size > 8MB
      bcache: handle cache prio_buckets and disk_buckets properly for bucket size > 8MB
      bcache: handle cache set verify_ondisk properly for bucket size > 8MB
      bcache: handle btree node memory allocation properly for bucket size > 8MB
      bcache: add bucket_size_hi into struct cache_sb_disk for large bucket
      bcache: add sysfs file to display feature sets information of cache set
      bcache: avoid extra memory allocation from mempool c->fill_iter
      bcache: avoid extra memory consumption in struct bbio for large bucket size
      bcache: fix bio_{start,end}_io_acct with proper device
      bcache: use disk_{start,end}_io_acct() to count I/O for bcache device

Damien Le Moal (4):
      md: Fix compilation warning
      md: raid5-cache: Remove set but unused variable
      md: raid5: Fix compilation warning
      md: raid10: Fix compilation warning

Dan Carpenter (1):
      nvme: remove an unnecessary condition

David E. Box (1):
      nvme-pci: add support for ACPI StorageD3Enable property

David Fugate (1):
      nvme: document quirked Intel models

Dongli Zhang (3):
      nvme-pci: remove the empty line at the beginning of nvme_should_reset()
      nvmet-loop: remove unused 'target_ctrl' in nvme_loop_ctrl
      nvme-fcloop: verify wwnn and wwpn format

Guoqing Jiang (7):
      raid5: call clear_batch_ready before set STRIPE_ACTIVE
      raid5: put the comment of clear_batch_ready to the right place
      raid5: remove the meaningless check in raid5_make_request
      md/raid5: remove the redundant setting of STRIPE_HANDLE
      md: print errno in super_written
      raid5-cache: hold spinlock instead of mutex in r5c_journal_mode_show
      raid5: don't duplicate code for different paths in handle_stripe

Gustavo A. R. Silva (3):
      s390/dasd: Use struct_size() helper
      bcache: movinggc: Use struct_size() helper in kzalloc()
      bcache: Use struct_size() in kzalloc()

Hannes Reinecke (1):
      nvme-multipath: do not fall back to __nvme_find_path() for non-optimized paths

James Smart (3):
      nvme-fc: set max_segments to lldd max value
      nvmet-fc: check successful reference in nvmet_fc_find_target_assoc
      nvmet-fc: remove redundant del_work_active flag

Jean Delvare (1):
      bcache: Fix typo in Kconfig name

Jens Axboe (8):
      Merge tag 'v5.8-rc4' into for-5.9/drivers
      Merge branch 'nvme-5.9' of git://git.infradead.org/nvme into for-5.9/drivers
      Merge branch 'md-next' of https://git.kernel.org/.../song/md into for-5.9/drivers
      Merge branch 'md-next' of https://git.kernel.org/.../song/md into for-5.9/drivers
      Merge branch 'md-next' of https://git.kernel.org/.../song/md into for-5.9/drivers
      Merge branch 'nvme-5.9' of git://git.infradead.org/nvme into for-5.9/drivers
      Merge branch 'md-next' of https://git.kernel.org/.../song/md into for-5.9/drivers

Junxiao Bi (1):
      md: fix deadlock causing by sysfs_notify

Keith Busch (2):
      nvme: support for multiple Command Sets Supported and Effects log pages
      nvme: support for zoned namespaces

Logan Gunthorpe (8):
      nvme: clear any SGL flags in passthru commands
      nvme: create helper function to obtain command effects
      nvme: introduce nvme_execute_passthru_rq to call nvme_passthru_[start|end]()
      nvme: introduce nvme_ctrl_get_by_path()
      nvme: export nvme_find_get_ns() and nvme_put_ns()
      nvmet: add passthru code to process commands
      nvmet: Add passthru enable/disable helpers
      nvmet: introduce the passthru configfs interface

Martin Wilck (1):
      nvme-multipath: fix logic for non-optimized paths

Matias Bjørling (1):
      block: add capacity field to zone descriptors

Max Gurtovoy (2):
      nvmet-tcp: remove has_keyed_sgls initialization
      nvmet: introduce flags member in nvmet_fabrics_ops

Niklas Cassel (3):
      nvme: implement multiple I/O Command Set support
      block: add max_open_zones to blk-sysfs
      block: add max_active_zones to blk-sysfs

Randy Dunlap (2):
      raid: md_p.h: drop duplicated word in a comment
      nvme-fc: drop a duplicated word in a comment

Sagi Grimberg (10):
      nvme-tcp: have queue prod/cons send list become a llist
      nvme-tcp: leverage request plugging
      nvme-tcp: optimize network stack with setting msg flags according to batch size
      nvmet-tcp: simplify nvmet_process_resp_list
      nvme: expose reconnect_delay and ctrl_loss_tmo via sysfs
      nvme: document nvme controller states
      nvme: fix deadlock in disconnect during scan_work and/or ana_work
      nvme-hwmon: log the controller device name
      nvme-tcp: fix controller reset hang during traffic
      nvme-rdma: fix controller reset hang during traffic

Sebastian Parschauer (1):
      md: register new md sysfs file 'uuid' read-only

Song Liu (1):
      md/raid5-cache: clear MD_SB_CHANGE_PENDING before flushing stripes

Stefan Haberland (1):
      s390/dasd: fix inability to use DASD with DIAG driver

Vitaly Mayatskikh (1):
      md/raid10: avoid deadlock on recovery.

Xiao Ni (1):
      md: fix max sectors calculation for super 1.0

Xu Wang (2):
      bcache: journel: use for_each_clear_bit() to simplify the code
      bcache: writeback: Remove unneeded variable i

Yamin Friedman (2):
      nvme-rdma: use new shared CQ mechanism
      nvmet-rdma: use new shared CQ mechanism

Yufen Yu (4):
      md/raid456: convert macro STRIPE_* to RAID5_STRIPE_*
      md/raid5: set default stripe_size as 4096
      md/raid5: support config stripe_size by sysfs entry
      md/raid5: use do_div() for 64 bit divisions in raid5_sync_request

Zhao Heming (3):
      md-cluster: fix wild pointer of unlock_all_bitmaps()
      md-cluster: fix safemode_delay value when converting to clustered bitmap
      md-cluster: fix rmmod issue when md_cluster convert bitmap to none

 Documentation/ABI/testing/sysfs-block |  18 ++
 Documentation/admin-guide/md.rst      |   4 +
 Documentation/block/queue-sysfs.rst   |  14 +
 block/Kconfig                         |   5 +-
 block/blk-sysfs.c                     |  27 ++
 block/blk-zoned.c                     |   1 +
 drivers/acpi/property.c               |   3 +
 drivers/block/null_blk.h              |   1 +
 drivers/block/null_blk_main.c         |  10 +-
 drivers/block/null_blk_zoned.c        |  16 +-
 drivers/block/rsxx/core.c             |  30 +-
 drivers/md/bcache/Kconfig             |   2 +-
 drivers/md/bcache/Makefile            |   2 +-
 drivers/md/bcache/alloc.c             |   2 +-
 drivers/md/bcache/bcache.h            |  31 +-
 drivers/md/bcache/bset.c              |   2 +-
 drivers/md/bcache/btree.c             |  12 +-
 drivers/md/bcache/features.c          |  75 +++++
 drivers/md/bcache/features.h          |  86 ++++++
 drivers/md/bcache/io.c                |   2 +-
 drivers/md/bcache/journal.c           |   9 +-
 drivers/md/bcache/movinggc.c          |   8 +-
 drivers/md/bcache/request.c           |  14 +-
 drivers/md/bcache/super.c             | 277 +++++++++++------
 drivers/md/bcache/sysfs.c             |  14 +
 drivers/md/bcache/writeback.c         |  22 +-
 drivers/md/bcache/writeback.h         |  19 +-
 drivers/md/md-bitmap.c                |   2 +-
 drivers/md/md-cluster.c               |   1 +
 drivers/md/md.c                       | 181 ++++++++---
 drivers/md/md.h                       |   9 +-
 drivers/md/raid10.c                   |  20 +-
 drivers/md/raid5-cache.c              |  28 +-
 drivers/md/raid5-ppl.c                |  11 +-
 drivers/md/raid5.c                    | 386 ++++++++++++++---------
 drivers/md/raid5.h                    |  53 ++--
 drivers/nvme/host/Makefile            |   1 +
 drivers/nvme/host/core.c              | 561 +++++++++++++++++++++++++---------
 drivers/nvme/host/fabrics.c           |   2 +-
 drivers/nvme/host/fabrics.h           |   3 +-
 drivers/nvme/host/fc.c                |   6 +-
 drivers/nvme/host/hwmon.c             |   5 +-
 drivers/nvme/host/lightnvm.c          |   4 +-
 drivers/nvme/host/multipath.c         |  37 ++-
 drivers/nvme/host/nvme.h              |  86 +++++-
 drivers/nvme/host/pci.c               | 190 ++++++++----
 drivers/nvme/host/rdma.c              |  99 ++++--
 drivers/nvme/host/tcp.c               | 100 ++++--
 drivers/nvme/host/zns.c               | 256 ++++++++++++++++
 drivers/nvme/target/Kconfig           |  12 +
 drivers/nvme/target/Makefile          |   1 +
 drivers/nvme/target/admin-cmd.c       |  26 +-
 drivers/nvme/target/configfs.c        | 117 ++++++-
 drivers/nvme/target/core.c            |  79 ++---
 drivers/nvme/target/discovery.c       |   2 +-
 drivers/nvme/target/fc.c              |  30 +-
 drivers/nvme/target/fcloop.c          |  29 +-
 drivers/nvme/target/loop.c            |  14 +-
 drivers/nvme/target/nvmet.h           |  60 +++-
 drivers/nvme/target/passthru.c        | 544 +++++++++++++++++++++++++++++++++
 drivers/nvme/target/rdma.c            |  17 +-
 drivers/nvme/target/tcp.c             |  13 +-
 drivers/s390/block/dasd_diag.c        |  33 +-
 drivers/scsi/sd_zbc.c                 |   6 +
 include/linux/blkdev.h                |  50 +++
 include/linux/nvme-fc-driver.h        |   2 +-
 include/linux/nvme.h                  | 138 ++++++++-
 include/uapi/linux/bcache.h           |  38 ++-
 include/uapi/linux/blkzoned.h         |  15 +-
 include/uapi/linux/raid/md_p.h        |   2 +-
 70 files changed, 3149 insertions(+), 826 deletions(-)
 create mode 100644 drivers/md/bcache/features.c
 create mode 100644 drivers/md/bcache/features.h
 create mode 100644 drivers/nvme/host/zns.c
 create mode 100644 drivers/nvme/target/passthru.c

Comments

Jens Axboe Aug. 4, 2020, 4:22 p.m. UTC | #1
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@lst.de>
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);
pr-tracker-bot@kernel.org Aug. 5, 2020, 6:39 p.m. UTC | #2
The pull request you sent on Tue, 4 Aug 2020 09:39:19 -0600:

> git://git.kernel.dk/linux-block.git tags/for-5.9/drivers-20200803

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/e0fc99e21e6e299673f1640105ac0c1d829c2d93

Thank you!