Skip to content

Commit 8a81926

Browse files
calebsanderaxboe
authored andcommitted
ublk: pass ublk_device to ublk_register_io_buf()
Avoid repeating the 2 dereferences to get the ublk_device from the io_uring_cmd by passing it from ublk_ch_uring_cmd_local() to ublk_register_io_buf(). Signed-off-by: Caleb Sander Mateos <csander@purestorage.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent b40dcdf commit 8a81926

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

drivers/block/ublk_drv.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2125,11 +2125,11 @@ static void ublk_io_release(void *priv)
21252125
}
21262126

21272127
static int ublk_register_io_buf(struct io_uring_cmd *cmd,
2128+
struct ublk_device *ub,
21282129
const struct ublk_queue *ubq,
21292130
struct ublk_io *io,
21302131
unsigned int index, unsigned int issue_flags)
21312132
{
2132-
struct ublk_device *ub = cmd->file->private_data;
21332133
struct request *req;
21342134
int ret;
21352135

@@ -2152,6 +2152,7 @@ static int ublk_register_io_buf(struct io_uring_cmd *cmd,
21522152

21532153
static int
21542154
ublk_daemon_register_io_buf(struct io_uring_cmd *cmd,
2155+
struct ublk_device *ub,
21552156
const struct ublk_queue *ubq, struct ublk_io *io,
21562157
unsigned index, unsigned issue_flags)
21572158
{
@@ -2165,7 +2166,8 @@ ublk_daemon_register_io_buf(struct io_uring_cmd *cmd,
21652166
*/
21662167
new_registered_buffers = io->task_registered_buffers + 1;
21672168
if (unlikely(new_registered_buffers >= UBLK_REFCOUNT_INIT))
2168-
return ublk_register_io_buf(cmd, ubq, io, index, issue_flags);
2169+
return ublk_register_io_buf(cmd, ub, ubq, io, index,
2170+
issue_flags);
21692171

21702172
if (!ublk_support_zero_copy(ubq) || !ublk_rq_has_data(req))
21712173
return -EINVAL;
@@ -2356,7 +2358,7 @@ static int ublk_ch_uring_cmd_local(struct io_uring_cmd *cmd,
23562358
* so can be handled on any task
23572359
*/
23582360
if (_IOC_NR(cmd_op) == UBLK_IO_REGISTER_IO_BUF)
2359-
return ublk_register_io_buf(cmd, ubq, io, addr,
2361+
return ublk_register_io_buf(cmd, ub, ubq, io, addr,
23602362
issue_flags);
23612363

23622364
goto out;
@@ -2378,7 +2380,7 @@ static int ublk_ch_uring_cmd_local(struct io_uring_cmd *cmd,
23782380

23792381
switch (_IOC_NR(cmd_op)) {
23802382
case UBLK_IO_REGISTER_IO_BUF:
2381-
return ublk_daemon_register_io_buf(cmd, ubq, io, addr,
2383+
return ublk_daemon_register_io_buf(cmd, ub, ubq, io, addr,
23822384
issue_flags);
23832385
case UBLK_IO_COMMIT_AND_FETCH_REQ:
23842386
ret = ublk_check_commit_and_fetch(ubq, io, addr);

0 commit comments

Comments
 (0)