From: Christoph Hellwig Date: Mon, 9 Nov 2020 17:30:59 +0000 (+0100) Subject: nbd: fix a block_device refcount leak in nbd_release X-Git-Tag: v5.4.78~58 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=81dcfdb9a01566fd8cd31adce52fb4e448bfd15d;p=users%2Fdwmw2%2Flinux.git nbd: fix a block_device refcount leak in nbd_release [ 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 Reviewed-by: Josef Bacik Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 62a873718b5bb..a3037fe54c3ab 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -1503,6 +1503,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);