]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit - block/blk-core.c
block: queue lock must be acquired when iterating over rls
authorTahsin Erdogan <tahsin@google.com>
Wed, 1 Feb 2017 06:36:50 +0000 (22:36 -0800)
committerJens Axboe <axboe@fb.com>
Wed, 1 Feb 2017 22:31:22 +0000 (15:31 -0700)
commitbbfc3c5d6c7882dc65c1230e781644e35c29839f
treed7ccecb7ef61bac4a6d5f93c703ad2df65c77a2a
parent5fad1b64aed8bd63ca7da2ba92107ba9ecd9a2c8
block: queue lock must be acquired when iterating over rls

blk_set_queue_dying() does not acquire queue lock before it calls
blk_queue_for_each_rl(). This allows a racing blkg_destroy() to
remove blkg->q_node from the linked list and have
blk_queue_for_each_rl() loop infitely over the removed blkg->q_node
list node.

Signed-off-by: Tahsin Erdogan <tahsin@google.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-core.c