* which would call closure_get(&dc->disk.cl)
*/
ddip = kzalloc(sizeof(struct detached_dev_io_private), GFP_NOIO);
+ if (!ddip) {
+ bio->bi_status = BLK_STS_RESOURCE;
+ bio->bi_end_io(bio);
+ return;
+ }
+
ddip->d = d;
/* Count on the bcache device */
ddip->orig_bdev = orig_bdev;
if (dc->io_disable)
return -EIO;
- if (!dc->bdev->bd_disk->fops->ioctl)
- return -ENOTTY;
- return dc->bdev->bd_disk->fops->ioctl(dc->bdev, mode, cmd, arg);
+
+ return __blkdev_driver_ioctl(dc->bdev, mode, cmd, arg);
}
void bch_cached_dev_request_init(struct cached_dev *dc)