The branch, master has been updated
       via  e3d35ca6944 vfs_ceph_new: Remove unused symbol for ceph_readdir
       via  341ff48a5a7 vfs_ceph_new: log open-flags upon release-fh
       via  73d5503a90e vfs_ceph_new: improved vfs-opers logging
       via  2153bedc8eb vfs_ceph_new: improved mount logging
       via  866b872cdb2 vfs_ceph_new: improve mount cache-entry add
       via  29a9d18d2d2 vfs_ceph_new: improve mount cache-entry ref-count
       via  1f7581c9edb vfs_ceph_new: avoid setting errno in 
cephmount_cache_update
       via  d9b872afeee vfs_ceph_new: refactor error-case in cephmount_mount_fs
      from  e4e3f05cd7d s3:winbindd: call process_set_title() for locator child

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


- Log -----------------------------------------------------------------
commit e3d35ca69446606b557f20e5faec2e76354eaaa4
Author: Anoop C S <[email protected]>
Date:   Mon Oct 28 11:13:10 2024 +0530

    vfs_ceph_new: Remove unused symbol for ceph_readdir
    
    ce459ddbcd0f32252858a7640f6871057eb14645 recently switched the readdir
    implementation to use ceph_readdir_r(). Thus ceph_readdir() is
    unnecessarily loaded which is no longer used.
    
    https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>
    
    Autobuild-User(master): Anoop C S <[email protected]>
    Autobuild-Date(master): Sun Nov  3 11:07:23 UTC 2024 on atb-devel-224

commit 341ff48a5a787ed358a28037b5ec751b7b530e20
Author: Shachar Sharon <[email protected]>
Date:   Sun Oct 6 13:26:48 2024 +0300

    vfs_ceph_new: log open-flags upon release-fh
    
    Store the set of open O_XXX flags as part of the referenced file-handle
    to allow more verbose debug-logging info upon close. This should ease
    the developer's logging analysis where same inode is opened multiple
    times but with different flags set.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

commit 73d5503a90e3bd5b1d1cfc6322d7de10955faf6c
Author: Shachar Sharon <[email protected]>
Date:   Wed Sep 11 09:58:53 2024 +0300

    vfs_ceph_new: improved vfs-opers logging
    
    Have more verbose and explicit values in various DBG_DEBUG logging. In
    particular, do not use the redundant '__func__' argument as it's info is
    already provided via the DBG_ logging macros.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

commit 2153bedc8eb53e5d9f44ef677bd1781d934abd34
Author: Shachar Sharon <[email protected]>
Date:   Thu Sep 5 15:08:38 2024 +0300

    vfs_ceph_new: improved mount logging
    
    Add extra debug-logging to mount/umount flows, with more verbose info.
    Try to make logging messages follow a 'key=value' format.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

commit 866b872cdb2b08a8b5e6a9015cde9b34c4bcdf01
Author: Shachar Sharon <[email protected]>
Date:   Sun Oct 20 11:50:13 2024 +0300

    vfs_ceph_new: improve mount cache-entry add
    
    Use boolean return value from cephmount_cache_add, to align code-style
    with other caphmount helper functions. Returns false in case of memory
    allocation failure, true otherwise (success).
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

commit 29a9d18d2d21842bb38bcdc6b9e366abac458ed9
Author: Shachar Sharon <[email protected]>
Date:   Thu Sep 5 17:14:59 2024 +0300

    vfs_ceph_new: improve mount cache-entry ref-count
    
    Use singed int32_t for cached mount-entries reference counting. Define
    helper function for inc/dec ref-count which also provides proper
    logging. Prefer boolean return-value for 'cephmount_cache_remove' as
    'int' is often used as error indicator within the context of libcephfs
    and this VFS module.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

commit 1f7581c9edb32a2a63bf032f7e167be8a401c3d5
Author: Shachar Sharon <[email protected]>
Date:   Wed Sep 4 15:59:21 2024 +0300

    vfs_ceph_new: avoid setting errno in cephmount_cache_update
    
    Do not set 'errno' to ENOENT in cephmount_cache_update. Setting this
    errno value upon newly inserted entry may cause vfs_ceph_connect to
    change errno to non-zero value even though the final result is OK.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

commit d9b872afeee4dee49de2e6eb86e4b59e07804363
Author: Shachar Sharon <[email protected]>
Date:   Wed Sep 4 14:55:50 2024 +0300

    vfs_ceph_new: refactor error-case in cephmount_mount_fs
    
    Align code-style of 'cephmount_mount_fs' with rest of the code: use
    'goto' for bail-out upon error case (with proper cleanups). For the
    common case of successful operation complete execution and return final
    value. Added extra debug-logging for good-path case.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15703
    
    Signed-off-by: Shachar Sharon <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    Reviewed-by: John Mulligan <[email protected]>

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

Summary of changes:
 source3/modules/vfs_ceph_new.c | 216 ++++++++++++++++++++++++++++-------------
 1 file changed, 150 insertions(+), 66 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_ceph_new.c b/source3/modules/vfs_ceph_new.c
index a6940a2ed74..808cdb548ab 100644
--- a/source3/modules/vfs_ceph_new.c
+++ b/source3/modules/vfs_ceph_new.c
@@ -155,7 +155,6 @@ struct vfs_ceph_config {
        CEPH_FN(ceph_userperm_destroy);
        CEPH_FN(ceph_userperm_new);
        CEPH_FN(ceph_version);
-       CEPH_FN(ceph_readdir);
        CEPH_FN(ceph_rewinddir);
        CEPH_FN(ceph_readdir_r);
 };
@@ -172,39 +171,55 @@ struct vfs_ceph_config {
 
 static struct cephmount_cached {
        char *cookie;
-       uint32_t count;
+       int32_t count;
        struct ceph_mount_info *mount;
        struct cephmount_cached *next, *prev;
        uint64_t fd_index;
 } *cephmount_cached;
 
-static int cephmount_cache_add(const char *cookie,
-                              struct ceph_mount_info *mount,
-                              struct cephmount_cached **out_entry)
+static bool cephmount_cache_add(const char *cookie,
+                               struct ceph_mount_info *mount,
+                               struct cephmount_cached **out_entry)
 {
        struct cephmount_cached *entry = NULL;
 
        entry = talloc_zero(NULL, struct cephmount_cached);
        if (entry == NULL) {
                errno = ENOMEM;
-               return -1;
+               return false;
        }
 
        entry->cookie = talloc_strdup(entry, cookie);
        if (entry->cookie == NULL) {
                talloc_free(entry);
                errno = ENOMEM;
-               return -1;
+               return false;
        }
 
        entry->mount = mount;
        entry->count = 1;
 
-       DBG_DEBUG("[CEPH] adding mount cache entry for %s\n", entry->cookie);
+       DBG_DEBUG("[CEPH] adding mount cache entry: cookie='%s'\n",
+                 entry->cookie);
        DLIST_ADD(cephmount_cached, entry);
 
        *out_entry = entry;
-       return 0;
+       return true;
+}
+
+static bool cephmount_cache_change_ref(struct cephmount_cached *entry, int n)
+{
+       entry->count += n;
+
+       DBG_DEBUG("[CEPH] updated mount cache entry: count=%" PRId32
+                 "change=%+d cookie='%s'\n", entry->count, n, entry->cookie);
+
+       if (entry->count && (n < 0)) {
+               DBG_DEBUG("[CEPH] mount cache entry still in use: "
+                         "count=%" PRId32 " cookie='%s'\n",
+                         entry->count, entry->cookie);
+       }
+       return (entry->count == 0);
 }
 
 static struct cephmount_cached *cephmount_cache_update(const char *cookie)
@@ -213,29 +228,25 @@ static struct cephmount_cached 
*cephmount_cache_update(const char *cookie)
 
        for (entry = cephmount_cached; entry; entry = entry->next) {
                if (strcmp(entry->cookie, cookie) == 0) {
-                       entry->count++;
-                       DBG_DEBUG("[CEPH] updated mount cache: count is [%"
-                                 PRIu32 "]\n", entry->count);
+                       cephmount_cache_change_ref(entry, 1);
                        return entry;
                }
        }
 
-       errno = ENOENT;
        return NULL;
 }
 
-static int cephmount_cache_remove(struct cephmount_cached *entry)
+static bool cephmount_cache_remove(struct cephmount_cached *entry)
 {
-       if (--entry->count) {
-               DBG_DEBUG("[CEPH] updated mount cache: count is [%"
-                         PRIu32 "]\n", entry->count);
-               return entry->count;
+       if (!cephmount_cache_change_ref(entry, -1)) {
+               return false;
        }
 
-       DBG_DEBUG("[CEPH] removing mount cache entry for %s\n", entry->cookie);
+       DBG_DEBUG("[CEPH] removing mount cache entry: cookie='%s'\n",
+                 entry->cookie);
        DLIST_REMOVE(cephmount_cached, entry);
        talloc_free(entry);
-       return 0;
+       return true;
 }
 
 static char *cephmount_get_cookie(TALLOC_CTX * mem_ctx,
@@ -247,6 +258,18 @@ static char *cephmount_get_cookie(TALLOC_CTX * mem_ctx,
                               config->fsname);
 }
 
+static int cephmount_update_conf(struct vfs_ceph_config *config,
+                                struct ceph_mount_info *mnt,
+                                const char *option,
+                                const char *value)
+{
+       DBG_DEBUG("[CEPH] calling ceph_conf_set: option='%s' value='%s'\n",
+                 option,
+                 value);
+
+       return config->ceph_conf_set_fn(mnt, option, value);
+}
+
 static struct ceph_mount_info *cephmount_mount_fs(
        struct vfs_ceph_config *config)
 {
@@ -255,35 +278,43 @@ static struct ceph_mount_info *cephmount_mount_fs(
        struct ceph_mount_info *mnt = NULL;
        /* if config_file and/or user_id are NULL, ceph will use defaults */
 
-       DBG_DEBUG("[CEPH] calling: ceph_create\n");
+       DBG_DEBUG("[CEPH] calling ceph_create: user_id='%s'\n",
+                 (config->user_id != NULL) ? config->user_id : "");
        ret = config->ceph_create_fn(&mnt, config->user_id);
        if (ret) {
                errno = -ret;
                return NULL;
        }
 
-       DBG_DEBUG("[CEPH] calling: ceph_conf_read_file with %s\n",
-                 (config->conf_file == NULL ? "default path" : 
config->conf_file));
+       DBG_DEBUG("[CEPH] calling ceph_conf_read_file: conf_file='%s'\n",
+                 (config->conf_file == NULL) ? "default path"
+                                             : config->conf_file);
        ret = config->ceph_conf_read_file_fn(mnt, config->conf_file);
        if (ret) {
-               goto err_cm_release;
+               goto out;
        }
 
-       DBG_DEBUG("[CEPH] calling: ceph_conf_get\n");
-       ret = config->ceph_conf_get_fn(mnt, "log file", buf, sizeof(buf));
+       DBG_DEBUG("[CEPH] calling ceph_conf_get: option='%s'\n", "log_file");
+       ret = config->ceph_conf_get_fn(mnt, "log_file", buf, sizeof(buf));
        if (ret < 0) {
-               goto err_cm_release;
+               goto out;
        }
 
        /* libcephfs disables POSIX ACL support by default, enable it... */
-       ret = config->ceph_conf_set_fn(mnt, "client_acl_type", "posix_acl");
+       ret = cephmount_update_conf(config,
+                                   mnt,
+                                   "client_acl_type",
+                                   "posix_acl");
        if (ret < 0) {
-               goto err_cm_release;
+               goto out;
        }
        /* tell libcephfs to perform local permission checks */
-       ret = config->ceph_conf_set_fn(mnt, "fuse_default_permissions", 
"false");
+       ret = cephmount_update_conf(config,
+                                   mnt,
+                                   "fuse_default_permissions",
+                                   "false");
        if (ret < 0) {
-               goto err_cm_release;
+               goto out;
        }
        /*
         * select a cephfs file system to use:
@@ -291,28 +322,34 @@ static struct ceph_mount_info *cephmount_mount_fs(
         * 'pacific'. Permit different shares to access different file systems.
         */
        if (config->fsname != NULL) {
+               DBG_DEBUG("[CEPH] calling ceph_select_filesystem: "
+                         "fsname='%s'\n", config->fsname);
                ret = config->ceph_select_filesystem_fn(mnt, config->fsname);
                if (ret < 0) {
-                       goto err_cm_release;
+                       goto out;
                }
        }
 
-       DBG_DEBUG("[CEPH] calling: ceph_mount\n");
+       DBG_DEBUG("[CEPH] calling ceph_mount: mnt=%p\n", mnt);
        ret = config->ceph_mount_fn(mnt, NULL);
-       if (ret >= 0) {
-               goto cm_done;
+       if (ret < 0) {
+               goto out;
        }
+       ret = 0;
 
-      err_cm_release:
-       config->ceph_release_fn(mnt);
-       mnt = NULL;
-       DBG_DEBUG("[CEPH] Error mounting fs: %s\n", strerror(-ret));
-      cm_done:
-       /*
-        * Handle the error correctly. Ceph returns -errno.
-        */
-       if (ret) {
+out:
+       if (ret != 0) {
+               config->ceph_release_fn(mnt);
+               mnt = NULL;
+               DBG_ERR("[CEPH] mount failed: user_id='%s' fsname='%s' %s",
+                       (config->user_id != NULL) ? config->user_id : "",
+                       (config->fsname != NULL) ? config->fsname : "",
+                       strerror(-ret));
                errno = -ret;
+       } else {
+               DBG_DEBUG("[CEPH] mount done: user_id='%s' fsname='%s'",
+                         (config->user_id != NULL) ? config->user_id : "",
+                         (config->fsname != NULL) ? config->fsname : "");
        }
        return mnt;
 }
@@ -404,7 +441,6 @@ static bool vfs_cephfs_load_lib(struct vfs_ceph_config 
*config)
        CHECK_CEPH_FN(libhandle, ceph_userperm_destroy);
        CHECK_CEPH_FN(libhandle, ceph_userperm_new);
        CHECK_CEPH_FN(libhandle, ceph_version);
-       CHECK_CEPH_FN(libhandle, ceph_readdir);
        CHECK_CEPH_FN(libhandle, ceph_rewinddir);
        CHECK_CEPH_FN(libhandle, ceph_readdir_r);
 
@@ -511,15 +547,19 @@ static int vfs_ceph_connect(struct vfs_handle_struct 
*handle,
                goto connect_fail;
        }
 
-       ret = cephmount_cache_add(cookie, mount, &entry);
-       if (ret != 0) {
+       ok = cephmount_cache_add(cookie, mount, &entry);
+       if (!ok) {
+               ret = -1;
                goto connect_fail;
        }
 
 connect_ok:
        config->mount = entry->mount;
        config->mount_entry = entry;
-       DBG_WARNING("Connection established with the server: %s\n", cookie);
+       DBG_INFO("[CEPH] connection established with the server: "
+                "snum=%d cookie='%s'\n",
+                SNUM(handle->conn),
+                cookie);
 
        /*
         * Unless we have an async implementation of getxattrat turn this off.
@@ -540,20 +580,22 @@ static void vfs_ceph_disconnect(struct vfs_handle_struct 
*handle)
 
        mount = config->mount;
 
-       ret = cephmount_cache_remove(config->mount_entry);
-       if (ret > 0) {
-               DBG_DEBUG("[CEPH] mount cache entry still in use\n");
+       if (!cephmount_cache_remove(config->mount_entry)) {
                return;
        }
 
        ret = config->ceph_unmount_fn(mount);
        if (ret < 0) {
-               DBG_ERR("[CEPH] failed to unmount: %s\n", strerror(-ret));
+               DBG_ERR("[CEPH] failed to unmount: snum=%d %s\n",
+                       SNUM(handle->conn),
+                       strerror(-ret));
        }
 
        ret = config->ceph_release_fn(mount);
        if (ret < 0) {
-               DBG_ERR("[CEPH] failed to release: %s\n", strerror(-ret));
+               DBG_ERR("[CEPH] failed to release: snum=%d %s\n",
+                       SNUM(handle->conn),
+                       strerror(-ret));
        }
 
        config->mount_entry = NULL;
@@ -629,6 +671,7 @@ struct vfs_ceph_fh {
        struct Fh *fh;
        struct dirent *de;
        int fd;
+       int o_flags;
 };
 
 static int cephmount_next_fd(struct cephmount_cached *cme)
@@ -666,7 +709,8 @@ static int vfs_ceph_release_fh(struct vfs_ceph_fh *cfh)
        int ret = 0;
 
        if (cfh->fh != NULL) {
-               DBG_DEBUG("[ceph] ceph_ll_close: fd=%d\n", cfh->fd);
+               DBG_DEBUG("[ceph] ceph_ll_close: fd=%d o_flags=0x%x\n",
+                         cfh->fd, cfh->o_flags);
                ret = cfh->config->ceph_ll_close_fn(cfh->cme->mount, cfh->fh);
                cfh->fh = NULL;
        }
@@ -1031,6 +1075,7 @@ static int vfs_ceph_ll_create(const struct 
vfs_handle_struct *handle,
        cfh->iref.ino = (long)stx.stx_ino;
        cfh->iref.owner = true;
        cfh->fh = fh;
+       cfh->o_flags = oflags;
        vfs_ceph_assign_fh_fd(cfh);
 
        return 0;
@@ -1166,6 +1211,7 @@ static int vfs_ceph_ll_open(const struct 
vfs_handle_struct *handle,
                                      cfh->uperm);
        if (ret == 0) {
                cfh->fh = fh;
+               cfh->o_flags = flags;
                vfs_ceph_assign_fh_fd(cfh);
        }
        return ret;
@@ -1770,7 +1816,7 @@ static int vfs_ceph_iget(const struct vfs_handle_struct 
*handle,
        iref->inode = inode;
        iref->ino = ino;
        iref->owner = true;
-       DBG_DEBUG("[CEPH] get-inode: %s ino=%" PRIu64 "\n", name, iref->ino);
+       DBG_DEBUG("[CEPH] iget: %s ino=%" PRIu64 "\n", name, iref->ino);
        return 0;
 }
 
@@ -2128,6 +2174,7 @@ static int vfs_ceph_openat(struct vfs_handle_struct 
*handle,
                         * Cephfs' Inode* from the above lookup so there is no
                         * need to go via expensive ceph_ll_open for Fh*.
                         */
+                       cfh->o_flags = flags;
                        vfs_ceph_assign_fh_fd(cfh);
                        result = cfh->fd;
                        goto out;
@@ -2213,7 +2260,12 @@ static struct tevent_req *vfs_ceph_pread_send(struct 
vfs_handle_struct *handle,
        struct vfs_ceph_pread_state *state = NULL;
        int ret = -1;
 
-       DBG_DEBUG("[CEPH] %s\n", __func__);
+       DBG_DEBUG("[CEPH] pread_send(%p, %p, %p, %zu, %zd)\n",
+                 handle,
+                 fsp,
+                 data,
+                 n,
+                 offset);
        req = tevent_req_create(mem_ctx, &state, struct vfs_ceph_pread_state);
        if (req == NULL) {
                return NULL;
@@ -2244,7 +2296,7 @@ static ssize_t vfs_ceph_pread_recv(struct tevent_req *req,
        struct vfs_ceph_pread_state *state =
                tevent_req_data(req, struct vfs_ceph_pread_state);
 
-       DBG_DEBUG("[CEPH] %s\n", __func__);
+       DBG_DEBUG("[CEPH] pread_recv: bytes_read=%zd\n", state->bytes_read);
        if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
                return -1;
        }
@@ -2298,7 +2350,12 @@ static struct tevent_req *vfs_ceph_pwrite_send(struct 
vfs_handle_struct *handle,
        struct vfs_ceph_pwrite_state *state = NULL;
        int ret = -1;
 
-       DBG_DEBUG("[CEPH] %s\n", __func__);
+       DBG_DEBUG("[CEPH] pwrite_send(%p, %p, %p, %zu, %zd)\n",
+                 handle,
+                 fsp,
+                 data,
+                 n,
+                 offset);
        req = tevent_req_create(mem_ctx, &state, struct vfs_ceph_pwrite_state);
        if (req == NULL) {
                return NULL;
@@ -2329,7 +2386,8 @@ static ssize_t vfs_ceph_pwrite_recv(struct tevent_req 
*req,
        struct vfs_ceph_pwrite_state *state =
                tevent_req_data(req, struct vfs_ceph_pwrite_state);
 
-       DBG_DEBUG("[CEPH] %s\n", __func__);
+       DBG_DEBUG("[CEPH] pwrite_recv: bytes_written=%zd\n",
+                 state->bytes_written);
        if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
                return -1;
        }
@@ -2345,7 +2403,8 @@ static off_t vfs_ceph_lseek(struct vfs_handle_struct 
*handle,
        struct vfs_ceph_fh *cfh = NULL;
        intmax_t result = 0;
 
-       DBG_DEBUG("[CEPH] vfs_ceph_lseek\n");
+       DBG_DEBUG(
+               "[CEPH] lseek(%p, %p, %zd, %d)\n", handle, fsp, offset, whence);
        result = vfs_ceph_fetch_io_fh(handle, fsp, &cfh);
        if (result != 0) {
                goto out;
@@ -2366,7 +2425,13 @@ static ssize_t vfs_ceph_sendfile(struct 
vfs_handle_struct *handle,
        /*
         * We cannot support sendfile because libcephfs is in user space.
         */
-       DBG_DEBUG("[CEPH] vfs_ceph_sendfile\n");
+       DBG_DEBUG("[CEPH] sendfile(%p, %d, %p, %p, %zd, %zu)\n",
+                 handle,
+                 tofd,
+                 fromfsp,
+                 hdr,
+                 offset,
+                 n);
        errno = ENOTSUP;
        return -1;
 }
@@ -2380,7 +2445,12 @@ static ssize_t vfs_ceph_recvfile(struct 
vfs_handle_struct *handle,
        /*
         * We cannot support recvfile because libcephfs is in user space.
         */
-       DBG_DEBUG("[CEPH] vfs_ceph_recvfile\n");
+       DBG_DEBUG("[CEPH] recvfile(%p, %d, %p, %zd, %zu)\n",
+                 handle,
+                 fromfd,
+                 tofsp,
+                 offset,
+                 n);
        errno = ENOTSUP;
        return -1;
 }
@@ -2396,7 +2466,13 @@ static int vfs_ceph_renameat(struct vfs_handle_struct 
*handle,
        struct vfs_ceph_fh *dst_dircfh = NULL;
        int result = -1;
 
-       DBG_DEBUG("[CEPH] vfs_ceph_renameat\n");
+       DBG_DEBUG("[CEPH] renameat(%p, %p, %s, %p, %s)\n",
+                 handle,
+                 srcfsp,
+                 smb_fname_src->base_name,
+                 dst_dircfh,
+                 smb_fname_dst->base_name);
+
        if (smb_fname_src->stream_name || smb_fname_dst->stream_name) {
                errno = ENOENT;
                return result;
@@ -2440,7 +2516,7 @@ static struct tevent_req *vfs_ceph_fsync_send(struct 
vfs_handle_struct *handle,
        struct vfs_aio_state *state = NULL;
        int ret = -1;
 
-       DBG_DEBUG("[CEPH] vfs_ceph_fsync_send\n");
+       DBG_DEBUG("[CEPH] fsync_send(%p, %p)\n", handle, fsp);
 
        req = tevent_req_create(mem_ctx, &state, struct vfs_aio_state);
        if (req == NULL) {
@@ -2473,7 +2549,9 @@ static int vfs_ceph_fsync_recv(struct tevent_req *req,
        struct vfs_aio_state *state =
                tevent_req_data(req, struct vfs_aio_state);
 
-       DBG_DEBUG("[CEPH] vfs_ceph_fsync_recv\n");
+       DBG_DEBUG("[CEPH] fsync_recv: error=%d duration=%" PRIu64 "\n",
+                 state->error,
+                 state->duration);
 
        if (tevent_req_is_unix_error(req, &vfs_aio_state->error)) {
                return -1;
@@ -2850,7 +2928,13 @@ static bool vfs_ceph_lock(struct vfs_handle_struct 
*handle,
                          off_t count,
                          int type)
 {
-       DBG_DEBUG("[CEPH] lock\n");
+       DBG_DEBUG("[CEPH] lock(%p, %p, %d, %zd, %zd, %d)\n",
+                 handle,
+                 fsp,
+                 op,
+                 offset,
+                 count,
+                 type);
        return true;
 }
 


-- 
Samba Shared Repository

Reply via email to