diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index bf9bf3f22edb..673756468019 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c @@ -1822,8 +1822,11 @@ static ssize_t sysfs_blk_trace_attr_store(struct device *dev, } ret = 0; - if (bt == NULL) + if (bt == NULL) { ret = blk_trace_setup_queue(q, bdev); + bt = rcu_dereference_protected(q->blk_trace, + lockdep_is_held(&q->blk_trace_mutex)); + } if (ret == 0) { if (attr == &dev_attr_act_mask)