summaryrefslogtreecommitdiff
path: root/scripts/gdb/linux/utils.py
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2020-03-13 13:20:51 +0300
committerIlya Dryomov <idryomov@gmail.com>2020-04-13 09:55:49 +0300
commit0e4e1de5b63fa423b13593337a27fd2d2b0bcf77 (patch)
tree8abbb9cb2d0db92749231abb3214c5b2699dd11c /scripts/gdb/linux/utils.py
parent8f3d9f354286745c751374f5f1fcafee6b3f3136 (diff)
downloadlinux-0e4e1de5b63fa423b13593337a27fd2d2b0bcf77.tar.xz
rbd: avoid a deadlock on header_rwsem when flushing notifies
rbd_unregister_watch() flushes notifies and therefore cannot be called under header_rwsem because a header update notify takes header_rwsem to synchronize with "rbd map". If mapping an image fails after the watch is established and a header update notify sneaks in, we deadlock when erroring out from rbd_dev_image_probe(). Move watch registration and unregistration out of the critical section. The only reason they were put there was to make header_rwsem management slightly more obvious. Fixes: 811c66887746 ("rbd: fix rbd map vs notify races") Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Diffstat (limited to 'scripts/gdb/linux/utils.py')
0 files changed, 0 insertions, 0 deletions