lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 229/800] fs: dlm: fix lowcomms_start error case
    Date
    From: Alexander Aring <aahringo@redhat.com>

    [ Upstream commit fcef0e6c27ce109d2c617aa12f0bfd9f7ff47d38 ]

    This patch fixes the error path handling in lowcomms_start(). We need to
    cleanup some static allocated data structure and cleanup possible
    workqueue if these have started.

    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/dlm/lowcomms.c | 15 ++++++++++++---
    1 file changed, 12 insertions(+), 3 deletions(-)

    diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
    index b1dd850a4699..9bf920bee292 100644
    --- a/fs/dlm/lowcomms.c
    +++ b/fs/dlm/lowcomms.c
    @@ -1666,10 +1666,15 @@ static void process_send_sockets(struct work_struct *work)

    static void work_stop(void)
    {
    - if (recv_workqueue)
    + if (recv_workqueue) {
    destroy_workqueue(recv_workqueue);
    - if (send_workqueue)
    + recv_workqueue = NULL;
    + }
    +
    + if (send_workqueue) {
    destroy_workqueue(send_workqueue);
    + send_workqueue = NULL;
    + }
    }

    static int work_start(void)
    @@ -1686,6 +1691,7 @@ static int work_start(void)
    if (!send_workqueue) {
    log_print("can't start dlm_send");
    destroy_workqueue(recv_workqueue);
    + recv_workqueue = NULL;
    return -ENOMEM;
    }

    @@ -1823,7 +1829,7 @@ int dlm_lowcomms_start(void)

    error = work_start();
    if (error)
    - goto fail;
    + goto fail_local;

    dlm_allow_conn = 1;

    @@ -1840,6 +1846,9 @@ int dlm_lowcomms_start(void)
    fail_unlisten:
    dlm_allow_conn = 0;
    dlm_close_sock(&listen_con.sock);
    + work_stop();
    +fail_local:
    + deinit_local();
    fail:
    return error;
    }
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:41    [W:2.655 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site