diff options
author | Roland Kammerer <[email protected]> | 2018-12-20 17:23:28 +0100 |
---|---|---|
committer | Jens Axboe <[email protected]> | 2018-12-20 09:51:29 -0700 |
commit | d29e89e34952a9ad02c77109c71a80043544296e (patch) | |
tree | 76bf37e788e3374b433ce89a8664ad9a5d46dff1 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 3a762de55b4ede47a5369f57d0f92979738be638 (diff) |
drbd: narrow rcu_read_lock in drbd_sync_handshake
So far there was the possibility that we called
genlmsg_new(GFP_NOIO)/mutex_lock() while holding an rcu_read_lock().
This included cases like:
drbd_sync_handshake (acquire the RCU lock)
drbd_asb_recover_1p
drbd_khelper
drbd_bcast_event
genlmsg_new(GFP_NOIO) --> may sleep
drbd_sync_handshake (acquire the RCU lock)
drbd_asb_recover_1p
drbd_khelper
notify_helper
genlmsg_new(GFP_NOIO) --> may sleep
drbd_sync_handshake (acquire the RCU lock)
drbd_asb_recover_1p
drbd_khelper
notify_helper
mutex_lock --> may sleep
While using GFP_ATOMIC whould have been possible in the first two cases,
the real fix is to narrow the rcu_read_lock.
Reported-by: Jia-Ju Bai <[email protected]>
Reviewed-by: Lars Ellenberg <[email protected]>
Signed-off-by: Roland Kammerer <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions