diff mbox

block/iscsi: do not forget to logout from target

Message ID 1429000631-649-1-git-send-email-pl@kamp.de
State New
Headers show

Commit Message

Peter Lieven April 14, 2015, 8:37 a.m. UTC
We actually were always impolitely dropping the connection and
not cleanly logging out.

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Lieven <pl@kamp.de>
---
 block/iscsi.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

ronnie sahlberg April 14, 2015, 10:47 p.m. UTC | #1
Reviewed-By: Ronnie Sahlberg <ronniesahlberg@gmail.com>

On Tue, Apr 14, 2015 at 1:37 AM, Peter Lieven <pl@kamp.de> wrote:
> We actually were always impolitely dropping the connection and
> not cleanly logging out.
>
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Peter Lieven <pl@kamp.de>
> ---
>  block/iscsi.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/block/iscsi.c b/block/iscsi.c
> index ab20e4d..0b6d3dd 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -1503,6 +1503,9 @@ out:
>
>      if (ret) {
>          if (iscsi != NULL) {
> +            if (iscsi_is_logged_in(iscsi)) {
> +                iscsi_logout_sync(iscsi);
> +            }
>              iscsi_destroy_context(iscsi);
>          }
>          memset(iscsilun, 0, sizeof(IscsiLun));
> @@ -1516,6 +1519,9 @@ static void iscsi_close(BlockDriverState *bs)
>      struct iscsi_context *iscsi = iscsilun->iscsi;
>
>      iscsi_detach_aio_context(bs);
> +    if (iscsi_is_logged_in(iscsi)) {
> +        iscsi_logout_sync(iscsi);
> +    }
>      iscsi_destroy_context(iscsi);
>      g_free(iscsilun->zeroblock);
>      g_free(iscsilun->allocationmap);
> --
> 1.9.1
>
diff mbox

Patch

diff --git a/block/iscsi.c b/block/iscsi.c
index ab20e4d..0b6d3dd 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -1503,6 +1503,9 @@  out:
 
     if (ret) {
         if (iscsi != NULL) {
+            if (iscsi_is_logged_in(iscsi)) {
+                iscsi_logout_sync(iscsi);
+            }
             iscsi_destroy_context(iscsi);
         }
         memset(iscsilun, 0, sizeof(IscsiLun));
@@ -1516,6 +1519,9 @@  static void iscsi_close(BlockDriverState *bs)
     struct iscsi_context *iscsi = iscsilun->iscsi;
 
     iscsi_detach_aio_context(bs);
+    if (iscsi_is_logged_in(iscsi)) {
+        iscsi_logout_sync(iscsi);
+    }
     iscsi_destroy_context(iscsi);
     g_free(iscsilun->zeroblock);
     g_free(iscsilun->allocationmap);