diff options
author | Yu Kuai <yukuai3@huawei.com> | 2024-04-06 12:09:25 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-05-02 17:35:13 +0300 |
commit | 0e9327c67410b129bf85e5c3a5aaea518328636f (patch) | |
tree | e700fae8669aa6f4074b068d54581788f4fadfc9 /block/bdev.c | |
parent | c919f6e8c67f6ba199626156f1543cf478f248a1 (diff) | |
download | linux-0e9327c67410b129bf85e5c3a5aaea518328636f.tar.xz |
block: fix module reference leakage from bdev_open_by_dev error path
[ Upstream commit 9617cd6f24b294552a817f80f5225431ef67b540 ]
At the time bdev_may_open() is called, module reference is grabbed
already, hence module reference should be released if bdev_may_open()
failed.
This problem is found by code review.
Fixes: ed5cc702d311 ("block: Add config option to not allow writing to mounted devices")
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20240406090930.2252838-22-yukuai1@huaweicloud.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'block/bdev.c')
-rw-r--r-- | block/bdev.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/bdev.c b/block/bdev.c index 2b0f97651a0a..812872cdc0be 100644 --- a/block/bdev.c +++ b/block/bdev.c @@ -873,7 +873,7 @@ struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder, goto abort_claiming; ret = -EBUSY; if (!bdev_may_open(bdev, mode)) - goto abort_claiming; + goto put_module; if (bdev_is_partition(bdev)) ret = blkdev_get_part(bdev, mode); else |