scsi: Unregister the poller of LUN hot-removal when it is registered
Change-Id: I48e831c235aab825c427892637ca1b4faafef152 Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/416317 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Ziye Yang <optimistyzy@gmail.com>
This commit is contained in:
parent
0ba0bbd132
commit
3e9f06281e
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user