OSDN Git Service

nvmet: force reconnect when number of queue changes
authorDaniel Wagner <dwagner@suse.de>
Tue, 25 Oct 2022 15:50:08 +0000 (17:50 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 15 Nov 2022 09:49:48 +0000 (10:49 +0100)
commit2be2cd5287152a6284b45244b6e5c2f7e0a218bd
tree1ffb968cc88f1770e1e1851a3f737e8254392499
parentbbf5410bc69e131c82ad970ce7ee28b5906a6cc5
nvmet: force reconnect when number of queue changes

In order to test queue number changes we need to make sure that the
host reconnects. Because only when the host disconnects from the
target the number of queues are allowed to change according the spec.

The initial idea was to disable and re-enable the ports and have the
host wait until the KATO timer expires, triggering error
recovery. Though the host would see a DNR reply when trying to
reconnect. Because of the DNR bit the connection is dropped
completely. There is no point in trying to reconnect with the same
parameters according the spec.

We can force to reconnect the host is by deleting all controllers. The
host will observe any newly posted request to fail and thus starts the
error recovery but this time without the DNR bit set.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Acked-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/configfs.c