Commit 3e9f0628 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Ben Walker
Browse files

scsi: Unregister the poller of LUN hot-removal when it is registered



Change-Id: I48e831c235aab825c427892637ca1b4faafef152
Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/416317


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarZiye Yang <optimistyzy@gmail.com>
parent 0ba0bbd1
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -187,7 +187,6 @@ spdk_scsi_lun_remove(struct spdk_scsi_lun *lun)
	spdk_scsi_lun_free_io_channel(lun);

	spdk_bdev_close(lun->bdev_desc);
	spdk_poller_unregister(&lun->hotremove_poller);

	spdk_scsi_dev_delete_lun(lun->dev, lun);
	free(lun);
@@ -198,10 +197,13 @@ spdk_scsi_lun_hot_remove_poll(void *arg)
{
	struct spdk_scsi_lun *lun = (struct spdk_scsi_lun *)arg;

	if (!spdk_scsi_lun_has_pending_tasks(lun)) {
		spdk_scsi_lun_remove(lun);
	if (spdk_scsi_lun_has_pending_tasks(lun)) {
		return -1;
	}

	spdk_poller_unregister(&lun->hotremove_poller);
	spdk_scsi_lun_remove(lun);

	return -1;
}