Commit b5107b32 authored by Yuhua's avatar Yuhua Committed by Tomasz Zawadzki
Browse files

vhost/scsi: fix hotremove dead lock during destroy session_poller



`vhost_user_dev_foreach_session` will hold the `user_dev->lock`.

Fixes: 376c25ed ("lib/vhost: use user_dev's lock to protect vhost sessions").

Signed-off-by: default avatarYuhua <yuhua@smartx.com>
Change-Id: Ie42fd6cccf463cb6204c0fb6cbbedd19abfcbe79
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20243


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Community-CI: Mellanox Build Bot
parent 68d8ff47
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1454,10 +1454,12 @@ destroy_session_poller_cb(void *arg)

		if (prev_status == VHOST_SCSI_DEV_REMOVING) {
			/* try to detach it globally */
			pthread_mutex_unlock(&user_dev->lock);
			vhost_user_dev_foreach_session(vsession->vdev,
						       vhost_scsi_session_process_removed,
						       vhost_scsi_dev_process_removed_cpl_cb,
						       (void *)(uintptr_t)i);
			pthread_mutex_lock(&user_dev->lock);
		}
	}