Commit c829c01f authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

nvme/perf: check is_draining before submitting queued IOs



Fixes #3210.

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I6c6dc3b3421c5b95e461a0bf1b6dcb6268bd7158
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22322


Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJohn Kariuki <John.Kariuki@amd.com>
parent 3cb94ba4
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1775,13 +1775,18 @@ work_fn(void *arg)
		 * to replace each I/O that is completed.
		 */
		TAILQ_FOREACH(ns_ctx, &worker->ns_ctx, link) {
			if (g_continue_on_error) {
			if (g_continue_on_error && !ns_ctx->is_draining) {
				/* Submit any I/O that is queued up */
				TAILQ_INIT(&swap);
				TAILQ_SWAP(&swap, &ns_ctx->queued_tasks, perf_task, link);
				while (!TAILQ_EMPTY(&swap)) {
					task = TAILQ_FIRST(&swap);
					TAILQ_REMOVE(&swap, task, link);
					if (ns_ctx->is_draining) {
						TAILQ_INSERT_TAIL(&ns_ctx->queued_tasks,
								  task, link);
						continue;
					}
					submit_single_io(task);
				}
			}