lkml.org 
[lkml]   [2019]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 089/211] nbd: add missing config put
    Date
    From: Mike Christie <mchristi@redhat.com>

    [ Upstream commit 887e975c4172d0d5670c39ead2f18ba1e4ec8133 ]

    Fix bug added with the patch:

    commit 8f3ea35929a0806ad1397db99a89ffee0140822a
    Author: Josef Bacik <josef@toxicpanda.com>
    Date: Mon Jul 16 12:11:35 2018 -0400

    nbd: handle unexpected replies better

    where if the timeout handler runs when the completion path is and we fail
    to grab the mutex in the timeout handler we will leave a config reference
    and cannot free the config later.

    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/block/nbd.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
    index fa60f265ee506..b1c7009de1f4d 100644
    --- a/drivers/block/nbd.c
    +++ b/drivers/block/nbd.c
    @@ -353,8 +353,10 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
    }
    config = nbd->config;

    - if (!mutex_trylock(&cmd->lock))
    + if (!mutex_trylock(&cmd->lock)) {
    + nbd_config_put(nbd);
    return BLK_EH_RESET_TIMER;
    + }

    if (config->num_connections > 1) {
    dev_err_ratelimited(nbd_to_dev(nbd),
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-10-03 19:50    [W:2.953 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site