|
@@ -1362,6 +1362,14 @@ static int blk_str2act_mask(const char *str)
|
|
|
return mask;
|
|
|
}
|
|
|
|
|
|
+static struct request_queue *blk_trace_get_queue(struct block_device *bdev)
|
|
|
+{
|
|
|
+ if (bdev->bd_disk == NULL)
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ return bdev_get_queue(bdev);
|
|
|
+}
|
|
|
+
|
|
|
static ssize_t sysfs_blk_trace_attr_show(struct device *dev,
|
|
|
struct device_attribute *attr,
|
|
|
char *buf)
|
|
@@ -1376,9 +1384,10 @@ static ssize_t sysfs_blk_trace_attr_show(struct device *dev,
|
|
|
if (bdev == NULL)
|
|
|
goto out_unlock_kernel;
|
|
|
|
|
|
- q = bdev_get_queue(bdev);
|
|
|
+ q = blk_trace_get_queue(bdev);
|
|
|
if (q == NULL)
|
|
|
goto out_bdput;
|
|
|
+
|
|
|
mutex_lock(&bdev->bd_mutex);
|
|
|
|
|
|
if (attr == &dev_attr_enable) {
|
|
@@ -1435,7 +1444,7 @@ static ssize_t sysfs_blk_trace_attr_store(struct device *dev,
|
|
|
if (bdev == NULL)
|
|
|
goto out_unlock_kernel;
|
|
|
|
|
|
- q = bdev_get_queue(bdev);
|
|
|
+ q = blk_trace_get_queue(bdev);
|
|
|
if (q == NULL)
|
|
|
goto out_bdput;
|
|
|
|