DLM: close othercon at send/receive error
authortsutomu.owa@toshiba.co.jp <tsutomu.owa@toshiba.co.jp>
Tue, 12 Sep 2017 08:56:15 +0000 (08:56 +0000)
committerDavid Teigland <teigland@redhat.com>
Mon, 25 Sep 2017 17:45:21 +0000 (12:45 -0500)
If an error occurs in the sending / receiving process, if othercon
exists, sending / receiving processing using othercon may also result
in an error. We fix to pre-close othercon as well.

Signed-off-by: Tadashi Miyauchi <miyauchi@toshiba-tops.co.jp>
Signed-off-by: Tsutomu Owa <tsutomu.owa@toshiba.co.jp>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index b275813..b486407 100644 (file)
@@ -703,7 +703,7 @@ out_resched:
 out_close:
        mutex_unlock(&con->sock_mutex);
        if (ret != -EAGAIN) {
-               close_connection(con, false, true, false);
+               close_connection(con, true, true, false);
                /* Reconnect when there is something to send */
        }
        /* Don't return success if we really got EOF */
@@ -1530,7 +1530,7 @@ out:
 
 send_error:
        mutex_unlock(&con->sock_mutex);
-       close_connection(con, false, false, true);
+       close_connection(con, true, false, true);
        /* Requeue the send work. When the work daemon runs again, it will try
           a new connection, then call this function again. */
        queue_work(send_workqueue, &con->swork);