The Samba-Bugzilla – Attachment 17758 Details for
Bug 15307
vfs_ceph incorrectly uses fsp_get_io_fd() instead of fsp_get_pathref_fd() in close and fstat
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for 4.18.rcNext, 4.17.next.
0001-vfs_ceph-use-fsp_get_pathref_fd-in-ceph-fstatat-and-.patch (text/plain), 2.98 KB, created by
Jeremy Allison
on 2023-02-13 20:43:10 UTC
(
hide
)
Description:
git-am fix for 4.18.rcNext, 4.17.next.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2023-02-13 20:43:10 UTC
Size:
2.98 KB
patch
obsolete
>From 137b6468a842bffbde246042647c33f5de8b9129 Mon Sep 17 00:00:00 2001 >From: John Mulligan <jmulligan@redhat.com> >Date: Fri, 3 Feb 2023 13:09:18 -0500 >Subject: [PATCH] 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 <jmulligan@redhat.com> >Reviewed-by: Jeremy Allison <jra@samba.org> >Reviewed-by: Gunther Deschner <gdeschne@redhat.com> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Mon Feb 13 20:04:38 UTC 2023 on atb-devel-224 > >(cherry picked from commit 54a8da864071e28eb6297b872dcb57fb9b171f33) >--- > source3/modules/vfs_ceph.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c >index b8190fa25e4..c5ee9d5967c 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) { >-- >2.34.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
jra
:
review?
(
gd
)
asn
:
review+
Actions:
View
Attachments on
bug 15307
: 17758