]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nbd: fix a block_device refcount leak in nbd_release
authorChristoph Hellwig <hch@lst.de>
Mon, 9 Nov 2020 17:30:59 +0000 (18:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Nov 2020 18:22:19 +0000 (19:22 +0100)
[ Upstream commit 2bd645b2d3f0bacadaa6037f067538e1cd4e42ef ]

bdget_disk needs to be paired with bdput to not leak a reference
on the block device inode.

Fixes: 08ba91ee6e2c ("nbd: Add the nbd NBD_DISCONNECT_ON_CLOSE config flag.")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/nbd.c

index d76fca629c143906d8fe1ff64ba3c1734505a66a..36c46fe078556c8e6184f8ee0572b722b1ce9b2f 100644 (file)
@@ -1517,6 +1517,7 @@ static void nbd_release(struct gendisk *disk, fmode_t mode)
        if (test_bit(NBD_RT_DISCONNECT_ON_CLOSE, &nbd->config->runtime_flags) &&
                        bdev->bd_openers == 0)
                nbd_disconnect_and_put(nbd);
+       bdput(bdev);
 
        nbd_config_put(nbd);
        nbd_put(nbd);