The branch, v4-17-test has been updated via 0b8713e342c vfs_ceph: use fsp_get_pathref_fd in ceph fstatat and close vfs calls from 79c06ede865 mdssvc: fix kMDScopeArray parsing
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-17-test - Log ----------------------------------------------------------------- commit 0b8713e342c6b7eb58e19fc01c90a7182d843baf Author: John Mulligan <jmulli...@redhat.com> Date: Fri Feb 3 13:09:18 2023 -0500 vfs_ceph: use fsp_get_pathref_fd in ceph fstatat and close vfs calls Replace fsp_get_io_fd with fsp_get_pathref_fd as these calls do use pathref fsps. fsp_get_io_fd asserts that the fsp is not pathref and asserts (on a debug build) or returns -1 (non debug build). Prior to these changes running ls on the root of the share failed. Logging from the failure case: ``` openat_pathref_fsp: smb_fname [.] openat_pathref_fullname: smb_fname [.] fsp_new: allocated files structure (1 used) file_name_hash: //. hash 0x3dfcc1c2 check_reduced_name: check_reduced_name [.] [/] cephwrap_realpath: [CEPH] realpath(0x55604da9a030, .) = //. check_reduced_name realpath [.] -> [//.] check_reduced_name: . reduced to //. cephwrap_openat: [CEPH] openat(0x55604da9a030, ., 0x55604da81f00, 133120, 0) cephwrap_openat: [CEPH] open(...) = 10 cephwrap_fstat: fsp_get_io_fd: fsp [.] is a path referencing fsp [CEPH] fstat(0x55604da9a030, -1) fsp_get_io_fd: fsp [.] is a path referencing fsp cephwrap_fstat: [CEPH] fstat(...) = -9 fd_openat: name ., flags = 04000 mode = 00, fd = 10. NT_STATUS_INVALID_HANDLE openat_pathref_fullname: Opening pathref for [.] failed: NT_STATUS_INVALID_HANDLE ``` This change also seems to match the recommendations in the `When to use fsp_get_io_fd() or fsp_get_pathref_fd()` section of The_New_VFS.txt document. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15307 Signed-off-by: John Mulligan <jmulli...@redhat.com> Reviewed-by: Jeremy Allison <j...@samba.org> Reviewed-by: Gunther Deschner <gdesc...@redhat.com> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Mon Feb 13 20:04:38 UTC 2023 on atb-devel-224 (cherry picked from commit 54a8da864071e28eb6297b872dcb57fb9b171f33) Autobuild-User(v4-17-test): Jule Anger <jan...@samba.org> Autobuild-Date(v4-17-test): Wed Feb 15 14:21:41 UTC 2023 on sn-devel-184 ----------------------------------------------------------------------- Summary of changes: source3/modules/vfs_ceph.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index 2186bfdb2ce..f6d8f9d2641 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -464,7 +464,7 @@ static int cephwrap_close(struct vfs_handle_struct *handle, files_struct *fsp) int result; DBG_DEBUG("[CEPH] close(%p, %p)\n", handle, fsp); - result = ceph_close(handle->data, fsp_get_io_fd(fsp)); + result = ceph_close(handle->data, fsp_get_pathref_fd(fsp)); DBG_DEBUG("[CEPH] close(...) = %d\n", result); WRAP_RETURN(result); @@ -788,9 +788,10 @@ static int cephwrap_fstat(struct vfs_handle_struct *handle, files_struct *fsp, S { int result = -1; struct ceph_statx stx; + int fd = fsp_get_pathref_fd(fsp); - DBG_DEBUG("[CEPH] fstat(%p, %d)\n", handle, fsp_get_io_fd(fsp)); - result = ceph_fstatx(handle->data, fsp_get_io_fd(fsp), &stx, + DBG_DEBUG("[CEPH] fstat(%p, %d)\n", handle, fd); + result = ceph_fstatx(handle->data, fd, &stx, SAMBA_STATX_ATTR_MASK, 0); DBG_DEBUG("[CEPH] fstat(...) = %d\n", result); if (result < 0) { -- Samba Shared Repository