OSDN Git Service

block: create the request_queue debugfs_dir on registration
authorLuis Chamberlain <mcgrof@kernel.org>
Fri, 19 Jun 2020 20:47:30 +0000 (20:47 +0000)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 Jun 2020 15:15:58 +0000 (09:15 -0600)
commit85e0cbbb8a79537dbc465e9deb449a08b2b092a6
treee137eee072e10d10335cd77c043c5797e1136268
parentb431ef837e3374da0db8ff6683170359aaa0859c
block: create the request_queue debugfs_dir on registration

We were only creating the request_queue debugfs_dir only
for make_request block drivers (multiqueue), but never for
request-based block drivers. We did this as we were only
creating non-blktrace additional debugfs files on that directory
for make_request drivers. However, since blktrace *always* creates
that directory anyway, we special-case the use of that directory
on blktrace. Other than this being an eye-sore, this exposes
request-based block drivers to the same debugfs fragile
race that used to exist with make_request block drivers
where if we start adding files onto that directory we can later
run a race with a double removal of dentries on the directory
if we don't deal with this carefully on blktrace.

Instead, just simplify things by always creating the request_queue
debugfs_dir on request_queue registration. Rename the mutex also to
reflect the fact that this is used outside of the blktrace context.

Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
block/blk-mq-debugfs.c
block/blk-sysfs.c
block/blk.h
include/linux/blkdev.h
kernel/trace/blktrace.c