]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ublk: don't return 0 in case of any failure
authorMing Lei <ming.lei@redhat.com>
Thu, 20 Apr 2023 09:11:04 +0000 (17:11 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 20 Apr 2023 13:03:02 +0000 (07:03 -0600)
Commit 2d786e66c966 ("block: ublk: switch to ioctl command encoding")
starts to reset local variable of 'ret' as zero, then if any failure
happens when handling the three IO commands, 0 can be returned to ublk
server.

Fix it by returning -EINVAL in case of command handling failure.

Cc: Christoph Hellwig <hch@lst.de>
Fixes: 2d786e66c966 ("block: ublk: switch to ioctl command encoding")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20230420091104.1092972-1-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index 5da5876a444341e85fa43aa4ae22f511e317f426..253008b2091d69be99d34376ef1488fc47a5e426 100644 (file)
@@ -1315,6 +1315,7 @@ static int ublk_ch_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags)
        if (ret)
                goto out;
 
+       ret = -EINVAL;
        switch (_IOC_NR(cmd_op)) {
        case UBLK_IO_FETCH_REQ:
                /* UBLK_IO_FETCH_REQ is only allowed before queue is setup */