mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
ublk: clear auto buf reg before updating io->buf in batch commit
ublk_batch_commit_io() stored the new auto_buf into io->buf before
calling ublk_clear_auto_buf_reg(). Clear takes the unregister index
from io->buf.auto_reg, so it could drop the new slot and leave the
old registered buffer behind.
Fixes: 1e500e106d ("ublk: handle UBLK_U_IO_COMMIT_IO_CMDS")
Signed-off-by: Yang Xiuwei <yangxiuwei@kylinos.cn>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
758b86f7bc
commit
af0955c8f2
|
|
@ -3784,11 +3784,11 @@ static int ublk_batch_commit_io(struct ublk_queue *ubq,
|
|||
ret = ublk_batch_commit_io_check(ubq, io, &buf);
|
||||
if (!ret) {
|
||||
io->res = elem->result;
|
||||
io->buf = buf;
|
||||
req = ublk_fill_io_cmd(io, data->cmd);
|
||||
|
||||
if (auto_reg)
|
||||
ublk_clear_auto_buf_reg(io, data->cmd, &buf_idx);
|
||||
io->buf = buf;
|
||||
compl = ublk_need_complete_req(data->ub, io);
|
||||
}
|
||||
ublk_io_unlock(io);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user