The branch, master has been updated via 6e6d8384f36 vfs_ceph: Use ceph_fdopendir() when available for SMB_VFS_FDOPENDIR from 447e131ebf2 smb2_tcon: add "smb3 share cap:{CONTINUOUS AVAILABILITY,SCALE OUT,CLUSTER,ASYMMETRIC}" options
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 6e6d8384f369e2b850921c7b4d54742f501c115c Author: Anoop C S <anoo...@samba.org> Date: Tue Jan 16 11:47:27 2024 +0530 vfs_ceph: Use ceph_fdopendir() when available for SMB_VFS_FDOPENDIR Signed-off-by: Anoop C S <anoo...@samba.org> Reviewed-by: Guenther Deschner <g...@samba.org> Autobuild-User(master): Günther Deschner <g...@samba.org> Autobuild-Date(master): Sat Jan 27 00:01:12 UTC 2024 on atb-devel-224 ----------------------------------------------------------------------- Summary of changes: source3/modules/vfs_ceph.c | 8 +++++++- source3/wscript | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index 4387918198e..c9ee5414f03 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -438,9 +438,15 @@ static DIR *cephwrap_fdopendir(struct vfs_handle_struct *handle, { int ret = 0; struct ceph_dir_result *result = NULL; - DBG_DEBUG("[CEPH] fdopendir(%p, %p)\n", handle, fsp); +#ifdef HAVE_CEPH_FDOPENDIR + int dirfd = fsp_get_io_fd(fsp); + DBG_DEBUG("[CEPH] fdopendir(%p, %d)\n", handle, dirfd); + ret = ceph_fdopendir(handle->data, dirfd, &result); +#else + DBG_DEBUG("[CEPH] fdopendir(%p, %p)\n", handle, fsp); ret = ceph_opendir(handle->data, fsp->fsp_name->base_name, &result); +#endif if (ret < 0) { result = NULL; errno = -ret; /* We return result which is NULL in this case */ diff --git a/source3/wscript b/source3/wscript index b76ced59aa4..83aeb763ec4 100644 --- a/source3/wscript +++ b/source3/wscript @@ -1681,7 +1681,8 @@ int main(void) { headers='cephfs/libcephfs.h') conf.DEFINE('HAVE_MANDATORY_CEPH_API', '1') for api in ['ceph_mkdirat', 'ceph_openat', 'ceph_unlinkat', - 'ceph_symlinkat', 'ceph_readlinkat', 'ceph_statxat']: + 'ceph_symlinkat', 'ceph_readlinkat', 'ceph_statxat', + 'ceph_fdopendir']: if not conf.CHECK_FUNCS_IN(api, 'cephfs', headers='cephfs/libcephfs.h'): conf.undefine('HAVE_MANDATORY_CEPH_API') -- Samba Shared Repository