The branch, master has been updated
via c0e5ffdc16b vfs_ceph: Handle absolute paths with dirfd = ‑1 in
openat
from 4468d8274c6 s3:utils: Fix misleading recursive flag in smbget error
message
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit c0e5ffdc16b7bc8aae869c294c3c4a803859482c
Author: Anoop C S <[email protected]>
Date: Sun Feb 15 09:57:18 2026 +0530
vfs_ceph: Handle absolute paths with dirfd = ‑1 in openat
ceph_openat() does not follow the convention of ignoring 'dirfd' when
the pathname is absolute, resulting in EBADF. As a temporary workaround,
handle this special case in cephwrap_openat() by calling ceph_open()
directly instead of ceph_openat().
Signed-off-by: Anoop C S <[email protected]>
Reviewed-by: John Mulligan <[email protected]>
Reviewed-by: Shwetha K Acharya <[email protected]>
Reviewed-by: Xavi Hernandez <[email protected]>
Autobuild-User(master): Anoop C S <[email protected]>
Autobuild-Date(master): Mon Feb 16 17:27:03 UTC 2026 on atb-devel-224
-----------------------------------------------------------------------
Summary of changes:
source3/modules/vfs_ceph.c | 9 +++++++++
1 file changed, 9 insertions(+)
Changeset truncated at 500 lines:
diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index e927f41dd03..830b8b17a4b 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -509,12 +509,21 @@ static int cephwrap_openat(struct vfs_handle_struct
*handle,
became_root = true;
}
+ if (dirfd == -1 && smb_fname->base_name[0] == '/') {
+ result = ceph_open(handle->data,
+ smb_fname->base_name,
+ flags,
+ mode);
+ goto done;
+ }
+
result = ceph_openat(handle->data,
dirfd,
smb_fname->base_name,
flags,
mode);
+done:
if (became_root) {
unbecome_root();
}
--
Samba Shared Repository