lkml.org 
[lkml]   [2021]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 015/289] fs: dlm: flush swork on shutdown
    Date
    From: Alexander Aring <aahringo@redhat.com>

    [ Upstream commit eec054b5a7cfe6d1f1598a323b05771ee99857b5 ]

    This patch fixes the flushing of send work before shutdown. The function
    cancel_work_sync() is not the right workqueue functionality to use here
    as it would cancel the work if the work queues itself. In cases of
    EAGAIN in send() for dlm message we need to be sure that everything is
    send out before. The function flush_work() will ensure that every send
    work is be done inclusive in EAGAIN cases.

    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 | 5 +----
    1 file changed, 1 insertion(+), 4 deletions(-)

    diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
    index 79f56f16bc2c..44e2716ac158 100644
    --- a/fs/dlm/lowcomms.c
    +++ b/fs/dlm/lowcomms.c
    @@ -612,10 +612,7 @@ static void shutdown_connection(struct connection *con)
    {
    int ret;

    - if (cancel_work_sync(&con->swork)) {
    - log_print("canceled swork for node %d", con->nodeid);
    - clear_bit(CF_WRITE_PENDING, &con->flags);
    - }
    + flush_work(&con->swork);

    mutex_lock(&con->sock_mutex);
    /* nothing to shutdown */
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-17 17:01    [W:3.842 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site