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