diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index 54ade89a1ad2..f5d3576ef3ed 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c @@ -735,7 +735,10 @@ int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg) int ret, start = 0; char b[BDEVNAME_SIZE]; - mutex_lock(&q->debugfs_mutex); + if (cmd == BLKTRACESETUP) + mutex_lock(&q->debugfs_mutex); + else + mutex_lock_nested(&q->debugfs_mutex, 2); switch (cmd) { case BLKTRACESETUP: