The branch, master has been updated
       via  12e50a8646d vfs_ceph_new: cleanup to async path
      from  09c44603f58 s3:selftest: run smb2.{bench,connect,credits,ioctl,rw} 
over quic-ngtcp2

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 12e50a8646d3702c654b200e73b15b40f2398333
Author: Shweta Sodani <ssod...@redhat.com>
Date:   Mon Jul 14 18:47:58 2025 +0530

    vfs_ceph_new: cleanup to async path
    
    Signed-off-by: Shweta Sodani <ssod...@redhat.com>
    Reviewed-by: Anoop C S <anoo...@samba.org>
    Reviewed-by: Shachar Sharon <ssha...@redhat.com>
    Reviewed-by: Guenther Deschner <g...@samba.org>
    
    Autobuild-User(master): Günther Deschner <g...@samba.org>
    Autobuild-Date(master): Thu Jul 17 23:13:36 UTC 2025 on atb-devel-224

-----------------------------------------------------------------------

Summary of changes:
 source3/modules/vfs_ceph_new.c | 101 ++++++++++++++++++++---------------------
 1 file changed, 48 insertions(+), 53 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_ceph_new.c b/source3/modules/vfs_ceph_new.c
index caafdad12af..996edc73458 100644
--- a/source3/modules/vfs_ceph_new.c
+++ b/source3/modules/vfs_ceph_new.c
@@ -2459,17 +2459,16 @@ struct vfs_ceph_aio_state {
        struct vfs_ceph_fh *cfh;
 #if HAVE_CEPH_ASYNCIO
        struct tevent_req *req;
-       bool orphaned;
        struct tevent_immediate *im;
        void *data;
-       size_t len;
-       off_t off;
-       bool write;
-       bool fsync;
-
        struct ceph_ll_io_info io_info;
        struct iovec iov;
+       bool orphaned;
+       bool write;
+       bool fsync;
 #endif
+       size_t len;
+       off_t off;
        struct timespec start_time;
        struct timespec finish_time;
        ssize_t result;
@@ -2628,32 +2627,6 @@ static void vfs_ceph_aio_done(struct tevent_context *ev,
        tevent_req_done(req);
 }
 
-static ssize_t vfs_ceph_aio_recv(struct tevent_req *req,
-                                struct vfs_aio_state *vfs_aio_state)
-{
-       struct vfs_ceph_aio_state *state = tevent_req_data(
-               req, struct vfs_ceph_aio_state);
-       ssize_t res = -1;
-
-       DBG_DEBUG("[CEPH] aio_recv: ino=%" PRIu64
-                 " fd=%d off=%jd len=%ju result=%ld\n",
-                 state->cfh->iref.ino,
-                 state->cfh->fd,
-                 state->off,
-                 state->len,
-                 state->result);
-
-       if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
-               goto out;
-       }
-
-       *vfs_aio_state = state->vfs_aio_state;
-       res = state->result;
-out:
-       tevent_req_received(req);
-       return res;
-}
-
 #endif /* HAVE_CEPH_ASYNCIO */
 
 static void vfs_ceph_aio_prepare(struct vfs_handle_struct *handle,
@@ -2761,21 +2734,29 @@ static ssize_t vfs_ceph_pread_recv(struct tevent_req 
*req,
 {
        struct vfs_ceph_aio_state *state = tevent_req_data(
                req, struct vfs_ceph_aio_state);
+       ssize_t res = -1;
 
-       DBG_DEBUG("[CEPH] pread_recv: bytes_read=%zd\n", state->result);
+       DBG_DEBUG("[CEPH] pread_recv: bytes_read=%zd"
+                 " ino=%" PRIu64
+                 " fd=%d off=%jd len=%ju\n",
+                 state->result,
+                 state->cfh->iref.ino,
+                 state->cfh->fd,
+                 state->off,
+                 state->len);
 
        SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes);
        SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x);
 
-#if HAVE_CEPH_ASYNCIO
-       return vfs_ceph_aio_recv(req, vfs_aio_state);
-#endif
        if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
-               return -1;
+               goto out;
        }
 
        *vfs_aio_state = state->vfs_aio_state;
-       return state->result;
+       res = state->result;
+out:
+       tevent_req_received(req);
+       return res;
 }
 
 static ssize_t vfs_ceph_pwrite(struct vfs_handle_struct *handle,
@@ -2869,22 +2850,29 @@ static ssize_t vfs_ceph_pwrite_recv(struct tevent_req 
*req,
 {
        struct vfs_ceph_aio_state *state = tevent_req_data(
                req, struct vfs_ceph_aio_state);
+       ssize_t res = -1;
 
-       DBG_DEBUG("[CEPH] pwrite_recv: bytes_written=%zd\n", state->result);
+       DBG_DEBUG("[CEPH] pwrite_recv: bytes_written=%zd"
+                 " ino=%" PRIu64
+                 " fd=%d off=%jd len=%ju\n",
+                 state->result,
+                 state->cfh->iref.ino,
+                 state->cfh->fd,
+                 state->off,
+                 state->len);
 
        SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes);
        SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x);
 
-#if HAVE_CEPH_ASYNCIO
-       return vfs_ceph_aio_recv(req, vfs_aio_state);
-#endif
-
        if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
-               return -1;
+               goto out;
        }
 
        *vfs_aio_state = state->vfs_aio_state;
-       return state->result;
+       res = state->result;
+out:
+       tevent_req_received(req);
+       return res;
 }
 
 static off_t vfs_ceph_lseek(struct vfs_handle_struct *handle,
@@ -3063,24 +3051,31 @@ static int vfs_ceph_fsync_recv(struct tevent_req *req,
 {
        struct vfs_ceph_aio_state *state = tevent_req_data(
                req, struct vfs_ceph_aio_state);
+       ssize_t res = -1;
 
-       DBG_DEBUG("[CEPH] fsync_recv: error=%d duration=%" PRIu64 "\n",
+       DBG_DEBUG("[CEPH] fsync_recv: error=%d duration=%" PRIu64
+                 " ino=%" PRIu64
+                 " fd=%d off=%jd len=%ju result=%ld\n",
                  state->vfs_aio_state.error,
-                 state->vfs_aio_state.duration);
+                 state->vfs_aio_state.duration,
+                 state->cfh->iref.ino,
+                 state->cfh->fd,
+                 state->off,
+                 state->len,
+                 state->result);
 
        SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes);
        SMBPROFILE_BYTES_ASYNC_END(state->profile_bytes_x);
 
-#if HAVE_CEPH_ASYNCIO
-       return vfs_ceph_aio_recv(req, vfs_aio_state);
-#endif
-
        if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
-               return -1;
+               goto out;
        }
 
        *vfs_aio_state = state->vfs_aio_state;
-       return 0;
+       res = state->result;
+out:
+       tevent_req_received(req);
+       return res;
 }
 
 static int vfs_ceph_stat(struct vfs_handle_struct *handle,


-- 
Samba Shared Repository

Reply via email to