From: Anoop C S Date: Tue, 17 Sep 2024 18:20:25 +0000 (+0530) Subject: vfs_ceph: Retrieve fs capabilties using vfs_get_fs_capabilities X-Git-Tag: samba-4.21.5~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b5c47c40f2b0b23e35f4b0270b9323d6becf418;p=thirdparty%2Fsamba.git vfs_ceph: Retrieve fs capabilties using vfs_get_fs_capabilities vfs_ceph is supposed to be the last entry when listed with other vfs modules. This is due to the fact that the connection path is not local to the server but relative to the virtual remote file system beneath it. Especially SMB_VFS_FS_CAPABILITIES implementation from vfs_default is likely to return incorrect results based on the connection path assumed to be local to the server which might not be the case with ceph module stacked. Therefore it doesn't make sense to pass through any vfs interface implementations further down the line to vfs_default. Instead make use of get_fs_capabilties to start with already known fs capabilties from connect phase. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15822 Signed-off-by: Anoop C S Reviewed-by: Ralph Boehme (cherry picked from commit 44e4e1eade5cadea9bd93fde8293ab6eb26230cc) --- diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index ca0331678dd..a72061d5d9d 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -380,10 +380,7 @@ static uint32_t cephwrap_fs_capabilities( struct vfs_handle_struct *handle, enum timestamp_set_resolution *p_ts_res) { - uint32_t caps; - - caps = SMB_VFS_NEXT_FS_CAPABILITIES(handle, p_ts_res); - *p_ts_res = TIMESTAMP_SET_NT_OR_BETTER; + uint32_t caps = vfs_get_fs_capabilities(handle->conn, p_ts_res); return caps; }