From 7fa7f91ee34996144b272f9d2a02988cc35b49d6 Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Thu, 23 Mar 2017 20:54:58 +0100 Subject: [PATCH] scsi: use SOFT reset when reseting bdev This fixes multiple SCSI reset issue. Change-Id: Ie62e0c1850faff17d383bcea00071d63d6bfa7f4 Signed-off-by: Pawel Wodkowski --- lib/scsi/scsi_bdev.c | 5 +---- test/iscsi_tgt/reset/reset.sh | 2 -- test/vhost/fiotest/common.sh | 1 - 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/scsi/scsi_bdev.c b/lib/scsi/scsi_bdev.c index a3f05e712..511f4d4bb 100644 --- a/lib/scsi/scsi_bdev.c +++ b/lib/scsi/scsi_bdev.c @@ -1247,9 +1247,6 @@ spdk_bdev_scsi_task_complete(struct spdk_bdev_io *bdev_io, enum spdk_bdev_io_sta } else if (task->type == SPDK_SCSI_TASK_TYPE_MANAGE) { if (status == SPDK_BDEV_IO_STATUS_SUCCESS) task->response = SPDK_SCSI_TASK_MGMT_RESP_SUCCESS; - if (task->function == SPDK_SCSI_TASK_FUNC_LUN_RESET) { - spdk_scsi_lun_clear_all(task->lun); - } } if (bdev_io->type == SPDK_BDEV_IO_TYPE_READ && task->iovs != bdev_io->u.read.iovs) { assert(task->iovcnt == bdev_io->u.read.iovcnt); @@ -1966,6 +1963,6 @@ spdk_bdev_scsi_execute(struct spdk_bdev *bdev, struct spdk_scsi_task *task) int spdk_bdev_scsi_reset(struct spdk_bdev *bdev, struct spdk_scsi_task *task) { - return spdk_bdev_reset(bdev, SPDK_BDEV_RESET_HARD, + return spdk_bdev_reset(bdev, SPDK_BDEV_RESET_SOFT, spdk_bdev_scsi_task_complete, task); } diff --git a/test/iscsi_tgt/reset/reset.sh b/test/iscsi_tgt/reset/reset.sh index 4b08c1dae..52e470616 100755 --- a/test/iscsi_tgt/reset/reset.sh +++ b/test/iscsi_tgt/reset/reset.sh @@ -67,11 +67,9 @@ trap "iscsicleanup; killprocess $pid; killprocess $fiopid; exit 1" SIGINT SIGTER # Do 3 resets while making sure iscsi_tgt and fio are still running for i in 1 2 3; do - sleep 1 kill -s 0 $pid kill -s 0 $fiopid sg_reset -d /dev/$dev - sleep 1 kill -s 0 $pid kill -s 0 $fiopid done diff --git a/test/vhost/fiotest/common.sh b/test/vhost/fiotest/common.sh index 471dd860d..ab157cd54 100644 --- a/test/vhost/fiotest/common.sh +++ b/test/vhost/fiotest/common.sh @@ -740,7 +740,6 @@ function vm_reset_scsi_devices() for disk in "${@:2}"; do echo "INFO: VM$1 Performing device reset on disk $disk" vm_ssh $1 sg_reset /dev/$disk -vNd - sleep 2 done }