From: Ming Lei Date: Wed, 21 May 2025 02:54:59 +0000 (+0800) Subject: ublk: handle ublk_set_auto_buf_reg() failure correctly in ublk_fetch() X-Git-Tag: v6.16-rc1~216^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9172dbf3a6d30fb80aa2f550003961450bb4c0bb;p=thirdparty%2Flinux.git ublk: handle ublk_set_auto_buf_reg() failure correctly in ublk_fetch() If ublk_set_auto_buf_reg() fails, we need to unlock and return, otherwise `ub->mutex` is leaked. Fixes: 99c1e4eb6a3f ("ublk: register buffer to local io_uring with provided buf index via UBLK_F_AUTO_BUF_REG") Reported-by: Caleb Sander Mateos Signed-off-by: Ming Lei Link: https://lore.kernel.org/r/20250521025502.71041-2-ming.lei@redhat.com Reviewed-by: Caleb Sander Mateos Signed-off-by: Jens Axboe --- diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 2474788ef2631..7a78b735c12fd 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2075,7 +2075,7 @@ static int ublk_fetch(struct io_uring_cmd *cmd, struct ublk_queue *ubq, if (ublk_support_auto_buf_reg(ubq)) { ret = ublk_set_auto_buf_reg(cmd); if (ret) - return ret; + goto out; } ublk_fill_io_cmd(io, cmd, buf_addr);