diff options
author | Ming Lei <ming.lei@redhat.com> | 2021-10-14 11:17:09 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-10-20 03:27:58 +0300 |
commit | 1d35d519d8bf224ccdb43f9a235b8bda2d6d453c (patch) | |
tree | 30d28c3f225d7c9795fb4dd0f1384cd5f2ff9417 /drivers | |
parent | 9e6a6b1212100148c109675e003369e3e219dbd9 (diff) | |
download | linux-1d35d519d8bf224ccdb43f9a235b8bda2d6d453c.tar.xz |
nvme: loop: clear NVME_CTRL_ADMIN_Q_STOPPED after admin queue is reallocated
The nvme-loop's admin queue may be freed and reallocated, and we have to
reset the flag of NVME_CTRL_ADMIN_Q_STOPPED so that the flag can match
with the quiesce state of the admin queue.
nvme-loop is the only driver to reallocate request queue, and not see
such usage in other nvme drivers.
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20211014081710.1871747-6-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/nvme/target/loop.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c index 440e1544033b..eb1094254c82 100644 --- a/drivers/nvme/target/loop.c +++ b/drivers/nvme/target/loop.c @@ -384,6 +384,8 @@ static int nvme_loop_configure_admin_queue(struct nvme_loop_ctrl *ctrl) error = PTR_ERR(ctrl->ctrl.admin_q); goto out_cleanup_fabrics_q; } + /* reset stopped state for the fresh admin queue */ + clear_bit(NVME_CTRL_ADMIN_Q_STOPPED, &ctrl->ctrl.flags); error = nvmf_connect_admin_queue(&ctrl->ctrl); if (error) |