nbd: error out if socket index doesn't match in nbd_handle_reply()
authorYu Kuai <yukuai3@huawei.com>
Mon, 1 Nov 2021 09:25:38 +0000 (17:25 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Nov 2021 20:42:41 +0000 (14:42 -0600)
commit fcf3d633d8e1 ("nbd: check sock index in nbd_read_stat()") just
add error message when socket index doesn't match. Since the request
and reply must be transmitted over the same socket, it's ok to error
out in such situation.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/r/20211101092538.1155842-1-yukuai3@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/nbd.c

index 60751b1..c622408 100644 (file)
@@ -762,6 +762,8 @@ static struct nbd_cmd *nbd_handle_reply(struct nbd_device *nbd, int index,
        if (cmd->index != index) {
                dev_err(disk_to_dev(nbd->disk), "Unexpected reply %d from different sock %d (expected %d)",
                        tag, index, cmd->index);
+               ret = -ENOENT;
+               goto out;
        }
        if (cmd->cmd_cookie != nbd_handle_to_cookie(handle)) {
                dev_err(disk_to_dev(nbd->disk), "Double reply on req %p, cmd_cookie %u, handle cookie %u\n",