From ae6485796db868014f752e5d9d6a45ce27c11912 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Wed, 9 Jan 2013 01:38:05 +0000 Subject: [PATCH] Targets should be deleted after all its sessions deleted Each session on delete is looking for each target. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4726 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- iscsi-scst/usr/target.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/iscsi-scst/usr/target.c b/iscsi-scst/usr/target.c index d34a9241a..b7f0a35d9 100644 --- a/iscsi-scst/usr/target.c +++ b/iscsi-scst/usr/target.c @@ -339,8 +339,6 @@ int target_del(u32 tid, u32 cookie) if (!target) return -ENOENT; - list_del(&target->tlist); - while (1) { /* We might need to handle session(s) removal event(s) from the kernel */ while (handle_iscsi_events(nl_fd, false) == 0); @@ -353,6 +351,13 @@ int target_del(u32 tid, u32 cookie) usleep(50000); } + /* + * Remove target from the list after waiting for all sessions + * deleted, because we are looking for this target in list during + * each session delete. + */ + list_del(&target->tlist); + if (target->tgt_enabled) isns_target_deregister(target->name);