diff options
| author | Benjamin Marzinski <bmarzins@redhat.com> | 2025-10-08 23:04:31 -0400 |
|---|---|---|
| committer | Mikulas Patocka <mpatocka@redhat.com> | 2025-10-20 15:26:57 +0200 |
| commit | be4addb1914f00c60599495acacf4e24e9cb8237 (patch) | |
| tree | bc641def0080d197346f372f6e8dc1c9b44a7d7b /scripts/gdb/linux/bpf.py | |
| parent | 4929ba5c5bd75dc28971f0909902e4624e92ad59 (diff) | |
dm: Fix deadlock when reloading a multipath table
Request-based devices (dm-multipath) queue I/O in blk-mq on noflush
suspends. Any queued IO will make it impossible to freeze the queue. If
a process attempts to update the queue limits while there is queued IO,
it can be get stuck holding the limits lock, while unable to freeze the
queue. If device-mapper then attempts to update the limits during a
table swap, it will deadlock trying to grab the limits lock while making
it impossible to flush the IO.
Disallow updating the queue limits during a table swap, when updating an
immutable request-based dm device (dm-multipath) during a noflush
suspend. It is userspace's responsibility to make sure that the new
table uses the same limits as the existing table if it asks for a
noflush suspend.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Diffstat (limited to 'scripts/gdb/linux/bpf.py')
0 files changed, 0 insertions, 0 deletions
