[SCM] Samba Shared Repository - branch v4-15-test updated

Jule Anger janger at samba.org
Wed Aug 25 12:55:01 UTC 2021


The branch, v4-15-test has been updated
       via  ccd0b865574 s3: VFS: ceph. Fix enumerating directories. dirfsp->fh->fd != AT_FDCWD in this case.
      from  9a23ff2ca2b s3: smbd: For FSCTL calls that go async, add the outstanding tevent_reqs to the aio list on the file handle.

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-15-test


- Log -----------------------------------------------------------------
commit ccd0b8655741966930d3193900b4fa3e97cc8b1b
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Jul 16 18:53:24 2021 -0700

    s3: VFS: ceph. Fix enumerating directories. dirfsp->fh->fd != AT_FDCWD in this case.
    
    Same as the fix for glusterfs.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14766
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    
    Autobuild-User(master): Ralph Böhme <slow at samba.org>
    Autobuild-Date(master): Thu Aug  5 06:15:14 UTC 2021 on sn-devel-184
    
    (cherry picked from commit 4f093ae6c9ee5b3e0f98b47fbacb0e37fad62052)
    
    Autobuild-User(v4-15-test): Jule Anger <janger at samba.org>
    Autobuild-Date(v4-15-test): Wed Aug 25 12:54:29 UTC 2021 on sn-devel-184

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

Summary of changes:
 source3/modules/vfs_ceph.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index 594ebce4b9a..3f55d724143 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -403,14 +403,23 @@ static int cephwrap_openat(struct vfs_handle_struct *handle,
 			   int flags,
 			   mode_t mode)
 {
+	struct smb_filename *name = NULL;
 	bool have_opath = false;
 	bool became_root = false;
 	int result = -ENOENT;
 
 	/*
-	 * cephfs API doesn't have ceph_openat(), so for now assert this.
+	 * ceph doesn't have openat().
 	 */
-	SMB_ASSERT(fsp_get_pathref_fd(dirfsp) == AT_FDCWD);
+	if (fsp_get_pathref_fd(dirfsp) != AT_FDCWD) {
+		name = full_path_from_dirfsp_atname(talloc_tos(),
+						    dirfsp,
+						    smb_fname);
+		if (name == NULL) {
+			return -1;
+		}
+		smb_fname = name;
+	}
 
 	DBG_DEBUG("[CEPH] openat(%p, %s, %p, %d, %d)\n", handle,
 		  smb_fname_str_dbg(smb_fname), fsp, flags, mode);
@@ -438,6 +447,7 @@ static int cephwrap_openat(struct vfs_handle_struct *handle,
 	}
 
 out:
+	TALLOC_FREE(name);
 	fsp->fsp_flags.have_proc_fds = false;
 	DBG_DEBUG("[CEPH] open(...) = %d\n", result);
 	WRAP_RETURN(result);


-- 
Samba Shared Repository



More information about the samba-cvs mailing list