[PATCH] mgmt: fixed -m system -o delete handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux SCSI]     [Linux RAID]     [Linux Clusters]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]

  Powered by Linux