system_active was reset only in case when mgmt response was carrying data.
In case of deleting system, response code was returned in err field of the header
therefore system was not shut down.
Signed-off-by: Alexander Nezhinsky <alexandern@xxxxxxxxxxxx>
Signed-off-by: Roi Dayan <roid@xxxxxxxxxxxx>
---
Hi Tomo,
This patch will fix shut down of the system with
tgtadm -m system -o delete
which otherwise gets stuck.
Thanks,
Roi
usr/mgmt.c | 9 +++------
1 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/usr/mgmt.c b/usr/mgmt.c
index ef1b265..56f89bb 100644
--- a/usr/mgmt.c
+++ b/usr/mgmt.c
@@ -585,13 +585,8 @@ static void mtask_recv_send_handler(int fd, int events, void *data)
err = concat_write(&mtask->rsp_concat, fd, mtask->done);
if (err >= 0) {
mtask->done += err;
- if (mtask->done == (rsp->len - sizeof(*rsp))) {
- if (req->mode == MODE_SYSTEM &&
- req->op == OP_DELETE &&
- !rsp->err)
- system_active = 0;
+ if (mtask->done == (rsp->len - sizeof(*rsp)))
goto out;
- }
} else
if (errno != EAGAIN)
goto out;
@@ -603,6 +598,8 @@ static void mtask_recv_send_handler(int fd, int events, void *data)
return;
out:
+ if (req->mode == MODE_SYSTEM && req->op == OP_DELETE && !rsp->err)
+ system_active = 0;
tgt_event_del(fd);
close(fd);
mtask_free(mtask);
--
1.7.8.2
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux SCSI]
[Linux RAID]
[Linux Clusters]
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[XFree86]
[Video Devices]