diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2023-11-17 18:36:34 +0100 |
---|---|---|
committer | Mike Snitzer <snitzer@kernel.org> | 2023-11-17 14:41:14 -0500 |
commit | 2a695062a5a42aead8c539a344168d4806b3fda2 (patch) | |
tree | 3faa3b841b9962760b0ba2afb7aa31c932219069 /tools/net/ynl/generated/devlink-user.c | |
parent | ccadc8a21ef13eb80006ecff6a7466810e4f0dd6 (diff) |
dm-bufio: fix no-sleep mode
dm-bufio has a no-sleep mode. When activated (with the
DM_BUFIO_CLIENT_NO_SLEEP flag), the bufio client is read-only and we
could call dm_bufio_get from tasklets. This is used by dm-verity.
Unfortunately, commit 450e8dee51aa ("dm bufio: improve concurrent IO
performance") broke this and the kernel would warn that cache_get()
was calling down_read() from no-sleeping context. The bug can be
reproduced by using "veritysetup open" with the "--use-tasklets"
flag.
This commit fixes dm-bufio, so that the tasklet mode works again, by
expanding use of the 'no_sleep_enabled' static_key to conditionally
use either a rw_semaphore or rwlock_t (which are colocated in the
buffer_tree structure using a union).
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org # v6.4
Fixes: 450e8dee51aa ("dm bufio: improve concurrent IO performance")
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Diffstat (limited to 'tools/net/ynl/generated/devlink-user.c')
0 files changed, 0 insertions, 0 deletions