diff options
author | Anatoliy Glagolev <glagolig@gmail.com> | 2018-06-13 23:38:51 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-06-15 16:15:37 +0200 |
commit | d6c73964f1e2a07f75057fb32ae46f6599036f93 (patch) | |
tree | 7e77c8a410880ad63db5b44303b7d6a3a472d95d /fs/ubifs/super.c | |
parent | block: remov blk_queue_invalidate_tags (diff) | |
download | linux-d6c73964f1e2a07f75057fb32ae46f6599036f93.tar.xz linux-d6c73964f1e2a07f75057fb32ae46f6599036f93.zip |
bsg: fix race of bsg_open and bsg_unregister
The existing implementation allows races between bsg_unregister and
bsg_open paths. bsg_unregister and request_queue cleanup and deletion
may start and complete right after bsg_get_device (in bsg_open path)
retrieves bsg_class_device and releases the mutex. Then bsg_open path
touches freed memory of bsg_class_device and request_queue.
One possible fix is to hold the mutex all the way through bsg_get_device
instead of releasing it after bsg_class_device retrieval.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-Off-By: Anatoliy Glagolev <glagolig@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/ubifs/super.c')
0 files changed, 0 insertions, 0 deletions