diff options
author | Zhihao Cheng <chengzhihao1@huawei.com> | 2022-11-11 15:10:27 +0300 |
---|---|---|
committer | Mike Snitzer <snitzer@kernel.org> | 2022-11-18 18:23:55 +0300 |
commit | 0dfc1f4ceae86a0d09d880ab87625c86c61ed33c (patch) | |
tree | c0fc918575a12cec15bf5456205f9268824eb399 /drivers/md/dm-bufio.c | |
parent | 4fe1ec995483737f3d2a14c3fe1d8fe634972979 (diff) | |
download | linux-0dfc1f4ceae86a0d09d880ab87625c86c61ed33c.tar.xz |
dm bufio: Fix missing decrement of no_sleep_enabled if dm_bufio_client_create failed
The 'no_sleep_enabled' should be decreased in error handling path
in dm_bufio_client_create() when the DM_BUFIO_CLIENT_NO_SLEEP flag
is set, otherwise static_branch_unlikely() will always return true
even if no dm_bufio_client instances have DM_BUFIO_CLIENT_NO_SLEEP
flag set.
Cc: stable@vger.kernel.org
Fixes: 3c1c875d0586 ("dm bufio: conditionally enable branching for DM_BUFIO_CLIENT_NO_SLEEP")
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Diffstat (limited to 'drivers/md/dm-bufio.c')
-rw-r--r-- | drivers/md/dm-bufio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c index 9c5ef818ca36..bb786c39545e 100644 --- a/drivers/md/dm-bufio.c +++ b/drivers/md/dm-bufio.c @@ -1858,6 +1858,8 @@ bad: dm_io_client_destroy(c->dm_io); bad_dm_io: mutex_destroy(&c->lock); + if (c->no_sleep) + static_branch_dec(&no_sleep_enabled); kfree(c); bad_client: return ERR_PTR(r); |