Commit f9929c51 authored by Daniel Wagner's avatar Daniel Wagner Committed by Keith Busch
Browse files

nvmet-fcloop: check all request and response have been processed



When the remoteport or the targetport are removed check that there are
no inflight requests or responses.

Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDaniel Wagner <wagi@kernel.org>
Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
parent 67582dfd
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1111,9 +1111,11 @@ fcloop_remoteport_delete(struct nvme_fc_remote_port *remoteport)
	rport->nport->rport = NULL;
	spin_unlock_irqrestore(&fcloop_lock, flags);

	if (put_port)
	if (put_port) {
		WARN_ON(!list_empty(&rport->ls_list));
		fcloop_nport_put(rport->nport);
	}
}

static void
fcloop_targetport_delete(struct nvmet_fc_target_port *targetport)
@@ -1130,9 +1132,11 @@ fcloop_targetport_delete(struct nvmet_fc_target_port *targetport)
	tport->nport->tport = NULL;
	spin_unlock_irqrestore(&fcloop_lock, flags);

	if (put_port)
	if (put_port) {
		WARN_ON(!list_empty(&tport->ls_list));
		fcloop_nport_put(tport->nport);
	}
}

#define	FCLOOP_HW_QUEUES		4
#define	FCLOOP_SGL_SEGS			256