From: Stefan Metzmacher Date: Fri, 8 May 2020 09:17:51 +0000 (+0200) Subject: vfs_io_uring: split out a vfs_io_uring_request_submit() function X-Git-Tag: ldb-2.2.0~527 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ab89b8e75354c5fd571985e924e1ccbec99de990;p=thirdparty%2Fsamba.git vfs_io_uring: split out a vfs_io_uring_request_submit() function BUG: https://bugzilla.samba.org/show_bug.cgi?id=14361 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison --- diff --git a/source3/modules/vfs_io_uring.c b/source3/modules/vfs_io_uring.c index f94453d9995..1d48bd192fe 100644 --- a/source3/modules/vfs_io_uring.c +++ b/source3/modules/vfs_io_uring.c @@ -371,6 +371,17 @@ static void vfs_io_uring_queue_run(struct vfs_io_uring_config *config) config->busy = false; } +static void vfs_io_uring_request_submit(struct vfs_io_uring_request *cur) +{ + struct vfs_io_uring_config *config = cur->config; + + io_uring_sqe_set_data(&cur->sqe, cur); + DLIST_ADD_END(config->queue, cur); + cur->list_head = &config->queue; + + vfs_io_uring_queue_run(config); +} + static void vfs_io_uring_fd_handler(struct tevent_context *ev, struct tevent_fd *fde, uint16_t flags, @@ -436,11 +447,7 @@ static struct tevent_req *vfs_io_uring_pread_send(struct vfs_handle_struct *hand fsp->fh->fd, &state->iov, 1, offset); - io_uring_sqe_set_data(&state->ur.sqe, &state->ur); - DLIST_ADD_END(config->queue, &state->ur); - state->ur.list_head = &config->queue; - - vfs_io_uring_queue_run(config); + vfs_io_uring_request_submit(&state->ur); if (!tevent_req_is_in_progress(req)) { return tevent_req_post(req, ev); @@ -545,11 +552,7 @@ static struct tevent_req *vfs_io_uring_pwrite_send(struct vfs_handle_struct *han fsp->fh->fd, &state->iov, 1, offset); - io_uring_sqe_set_data(&state->ur.sqe, &state->ur); - DLIST_ADD_END(config->queue, &state->ur); - state->ur.list_head = &config->queue; - - vfs_io_uring_queue_run(config); + vfs_io_uring_request_submit(&state->ur); if (!tevent_req_is_in_progress(req)) { return tevent_req_post(req, ev); @@ -640,11 +643,7 @@ static struct tevent_req *vfs_io_uring_fsync_send(struct vfs_handle_struct *hand io_uring_prep_fsync(&state->ur.sqe, fsp->fh->fd, 0); /* fsync_flags */ - io_uring_sqe_set_data(&state->ur.sqe, &state->ur); - DLIST_ADD_END(config->queue, &state->ur); - state->ur.list_head = &config->queue; - - vfs_io_uring_queue_run(config); + vfs_io_uring_request_submit(&state->ur); if (!tevent_req_is_in_progress(req)) { return tevent_req_post(req, ev);