]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_io_uring: split out a vfs_io_uring_request_submit() function
authorStefan Metzmacher <metze@samba.org>
Fri, 8 May 2020 09:17:51 +0000 (11:17 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 12 May 2020 19:53:45 +0000 (19:53 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14361

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/modules/vfs_io_uring.c

index f94453d99956e2b2fc86a716008b2234b8bfca4d..1d48bd192fe102208292b7a7a18ac6f9c048889c 100644 (file)
@@ -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);