OSDN Git Service

nvme-multipath: fix double initialization of ANA state
authorChristoph Hellwig <hch@lst.de>
Thu, 29 Apr 2021 12:18:53 +0000 (14:18 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 11 May 2021 16:30:45 +0000 (18:30 +0200)
commit5e1f689913a4498e3081093670ef9d85b2c60920
treef225378af2f7374c6cb7d2c089f97f4b0149a168
parentefed9a3337e341bd0989161b97453b52567bc59d
nvme-multipath: fix double initialization of ANA state

nvme_init_identify and thus nvme_mpath_init can be called multiple
times and thus must not overwrite potentially initialized or in-use
fields.  Split out a helper for the basic initialization when the
controller is initialized and make sure the init_identify path does
not blindly change in-use data structures.

Fixes: 0d0b660f214d ("nvme: add ANA support")
Reported-by: Martin Wilck <mwilck@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Hannes Reinecke <hare@suse.de>
drivers/nvme/host/core.c
drivers/nvme/host/multipath.c
drivers/nvme/host/nvme.h