X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=drivers%2Fmd%2Fbcache%2Frequest.c;h=f575b2dc3ceb5484fb86f971cab82c5af095cf30;hb=b16118b25356d0b240d9d06fa684a6396c32a7bf;hp=6d1de889baeb1c2caeb813a29f58dc6ec84de131;hpb=18ef082713ad1104c32cd17a15abdc3f43c9b28a;p=platform%2Fkernel%2Flinux-rpi.git diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c index 6d1de88..f575b2d 100644 --- a/drivers/md/bcache/request.c +++ b/drivers/md/bcache/request.c @@ -1107,6 +1107,12 @@ static void detached_dev_do_request(struct bcache_device *d, struct bio *bio, * 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; @@ -1233,9 +1239,8 @@ static int cached_dev_ioctl(struct bcache_device *d, fmode_t mode, 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)