loop.c (c013d0af81f60cc7dbe357c4e2a925fb6738dbfe) loop.c (e41f8c0222e30aadc58b84fcb33472a1505018f3)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * NVMe over Fabrics loopback device.
4 * Copyright (c) 2015-2016 HGST, a Western Digital Company.
5 */
6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
7#include <linux/scatterlist.h>
8#include <linux/blk-mq.h>

--- 410 unchanged lines hidden (view full) ---

419 nvmet_sq_destroy(&ctrl->queues[0].nvme_sq);
420 return error;
421}
422
423static void nvme_loop_shutdown_ctrl(struct nvme_loop_ctrl *ctrl)
424{
425 if (ctrl->ctrl.queue_count > 1) {
426 nvme_stop_queues(&ctrl->ctrl);
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * NVMe over Fabrics loopback device.
4 * Copyright (c) 2015-2016 HGST, a Western Digital Company.
5 */
6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
7#include <linux/scatterlist.h>
8#include <linux/blk-mq.h>

--- 410 unchanged lines hidden (view full) ---

419 nvmet_sq_destroy(&ctrl->queues[0].nvme_sq);
420 return error;
421}
422
423static void nvme_loop_shutdown_ctrl(struct nvme_loop_ctrl *ctrl)
424{
425 if (ctrl->ctrl.queue_count > 1) {
426 nvme_stop_queues(&ctrl->ctrl);
427 blk_mq_tagset_busy_iter(&ctrl->tag_set,
428 nvme_cancel_request, &ctrl->ctrl);
429 blk_mq_tagset_wait_completed_request(&ctrl->tag_set);
427 nvme_cancel_tagset(&ctrl->ctrl);
430 nvme_loop_destroy_io_queues(ctrl);
431 }
432
433 nvme_stop_admin_queue(&ctrl->ctrl);
434 if (ctrl->ctrl.state == NVME_CTRL_LIVE)
435 nvme_shutdown_ctrl(&ctrl->ctrl);
436
428 nvme_loop_destroy_io_queues(ctrl);
429 }
430
431 nvme_stop_admin_queue(&ctrl->ctrl);
432 if (ctrl->ctrl.state == NVME_CTRL_LIVE)
433 nvme_shutdown_ctrl(&ctrl->ctrl);
434
437 blk_mq_tagset_busy_iter(&ctrl->admin_tag_set,
438 nvme_cancel_request, &ctrl->ctrl);
439 blk_mq_tagset_wait_completed_request(&ctrl->admin_tag_set);
435 nvme_cancel_admin_tagset(&ctrl->ctrl);
440 nvme_loop_destroy_admin_queue(ctrl);
441}
442
443static void nvme_loop_delete_ctrl_host(struct nvme_ctrl *ctrl)
444{
445 nvme_loop_shutdown_ctrl(to_loop_ctrl(ctrl));
446}
447

--- 290 unchanged lines hidden ---
436 nvme_loop_destroy_admin_queue(ctrl);
437}
438
439static void nvme_loop_delete_ctrl_host(struct nvme_ctrl *ctrl)
440{
441 nvme_loop_shutdown_ctrl(to_loop_ctrl(ctrl));
442}
443

--- 290 unchanged lines hidden ---