|
@@ -2579,14 +2579,14 @@ static int pkt_new_dev(struct pktcdvd_device *pd, dev_t dev)
|
|
bdev = bdget(dev);
|
|
bdev = bdget(dev);
|
|
if (!bdev)
|
|
if (!bdev)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
+ ret = blkdev_get(bdev, FMODE_READ | FMODE_NDELAY, NULL);
|
|
|
|
+ if (ret)
|
|
|
|
+ return ret;
|
|
if (!blk_queue_scsi_passthrough(bdev_get_queue(bdev))) {
|
|
if (!blk_queue_scsi_passthrough(bdev_get_queue(bdev))) {
|
|
WARN_ONCE(true, "Attempt to register a non-SCSI queue\n");
|
|
WARN_ONCE(true, "Attempt to register a non-SCSI queue\n");
|
|
- bdput(bdev);
|
|
|
|
|
|
+ blkdev_put(bdev, FMODE_READ | FMODE_NDELAY);
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
- ret = blkdev_get(bdev, FMODE_READ | FMODE_NDELAY, NULL);
|
|
|
|
- if (ret)
|
|
|
|
- return ret;
|
|
|
|
|
|
|
|
/* This is safe, since we have a reference from open(). */
|
|
/* This is safe, since we have a reference from open(). */
|
|
__module_get(THIS_MODULE);
|
|
__module_get(THIS_MODULE);
|