]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - block/scsi_ioctl.c
block,scsi: fixup blk_get_request dead queue scenarios
[mirror_ubuntu-bionic-kernel.git] / block / scsi_ioctl.c
index 29d056782833f1504fd2d10b402679fd63682f09..a8b0d02084485d933d4fb6b490411e2874621c86 100644 (file)
@@ -318,8 +318,8 @@ static int sg_io(struct request_queue *q, struct gendisk *bd_disk,
                at_head = 1;
 
        rq = blk_get_request(q, writing ? WRITE : READ, GFP_KERNEL);
-       if (!rq)
-               return -ENOMEM;
+       if (IS_ERR(rq))
+               return PTR_ERR(rq);
        blk_rq_set_block_pc(rq);
 
        if (blk_fill_sghdr_rq(q, rq, hdr, mode)) {
@@ -448,8 +448,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
        }
 
        rq = blk_get_request(q, in_len ? WRITE : READ, __GFP_WAIT);
-       if (!rq) {
-               err = -ENODEV;
+       if (IS_ERR(rq)) {
+               err = PTR_ERR(rq);
                goto error_free_buffer;
        }
 
@@ -539,8 +539,8 @@ static int __blk_send_generic(struct request_queue *q, struct gendisk *bd_disk,
        int err;
 
        rq = blk_get_request(q, WRITE, __GFP_WAIT);
-       if (!rq)
-               return -ENODEV;
+       if (IS_ERR(rq))
+               return PTR_ERR(rq);
        blk_rq_set_block_pc(rq);
        rq->timeout = BLK_DEFAULT_SG_TIMEOUT;
        rq->cmd[0] = cmd;