Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e60a3bb authored by Josef Bacik's avatar Josef Bacik Committed by Jens Axboe
Browse files

nbd: fix -ERESTARTSYS handling



Christoph made it so that if we return'ed BLK_STS_RESOURCE whenever we
got ERESTARTSYS from sending our packets we'd return BLK_STS_OK, which
means we'd never requeue and just hang.  We really need to return the
right value from the upper layer.

Fixes: fc17b653 ("blk-mq: switch ->queue_rq return value to blk_status_t")
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent a5f3d8a5
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -820,9 +820,13 @@ static blk_status_t nbd_queue_rq(struct blk_mq_hw_ctx *hctx,
	 * appropriate.
	 */
	ret = nbd_handle_cmd(cmd, hctx->queue_num);
	if (ret < 0)
		ret = BLK_STS_IOERR;
	else if (!ret)
		ret = BLK_STS_OK;
	complete(&cmd->send_complete);

	return ret < 0 ? BLK_STS_IOERR : BLK_STS_OK;
	return ret;
}

static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg,