[SCM] Samba Shared Repository - branch v4-21-stable updated

Jule Anger janger at samba.org
Mon Mar 31 14:49:41 UTC 2025


The branch, v4-21-stable has been updated
       via  cc104bd1f42 VERSION: Disable GIT_SNAPSHOT for the 4.21.5 release.
       via  1e6a8496fe5 WHATSNEW: Add release notes for Samba 4.21.5.
       via  1f9c1dad691 vfs: Fix Bug 15791, vfs_acl_tdb unlinkat()
       via  fbd038e3db9 vfs: Fix a lock order violation in unlinkat_acl_tdb()
       via  cd0b2f6df72 vfs_ceph_new: Add path based fallback for SMB_VFS_FNTIMES
       via  8f3bc967657 vfs_ceph_new: Add path based fallback for SMB_VFS_FCHMOD
       via  997b4736797 vfs_ceph_new: Add path based fallback for SMB_VFS_FCHOWN
       via  9d9998a528b s3/lib: fix matching interfaces with multiple assigned IPs
       via  6533b3db6ce vfs_ceph_new: detect case sensitivity in CephFS
       via  f57377d1b9c vfs_glusterfs: Retrieve fs capabilities using vfs_get_fs_capabilities
       via  2a70febce8a vfs_ceph_new: Retrieve fs capabilties using vfs_get_fs_capabilities
       via  32e6aefa86d vfs_ceph_new: Populate fs capabilities within vfs_ceph_statvfs
       via  3b5c47c40f2 vfs_ceph: Retrieve fs capabilties using vfs_get_fs_capabilities
       via  78ab723ea2b vfs_ceph: Populate fs capabilities within cephwrap_statvfs
       via  904341acc5f vfs_default: Retrieve fs capabilites using vfs_get_fs_capabilties
       via  8c7d9f39d9f s3/smbd: Add a helper to fetch fs capabilities
       via  37a74eb39a9 smbd: consolidate fs capabilities code in vfswrap_fs_capabilities()
       via  40d2b73f24b vfs_ceph_new: Do not resolve by inode number
       via  d9151f66cc3 vfs_ceph_new: Handle absolute path in vfs_ceph_ll_walk
       via  6b997c180f5 vfs_ceph_new: Remove unused code in cephmount_mount_fs()
       via  08f2d5abca6 vfs_ceph_new: Remove redundant re-intialization to NULL
       via  101c2999830 vfs_ceph_new: use libcephfs nonblocking API for async-io ops
       via  f04ad3933b5 vfs_ceph_new: Remove unused symbol for ceph_readdir
       via  2900b44971e source3/wscript: Introduce auto mode to build ceph vfs modules
       via  d7ac6062d61 s3:utils: Remove call of ads_startup() from net_ads_keytab_create()
       via  92253a4708b s3:libads: Make sure that REALM is always added to keytab principals
       via  c0e3cabdb70 lib:krb5_wrap: Add smb_krb5_parse_name_flags()
       via  b7843d0f422 vfs_shadow_copy2: Use VFS interface to derive mount point
       via  cb882609555 ctdb-utils: Fix incorrect FSF address
       via  480f27625dd python:tdb_util: "samba-tool domain backup offline" hangs
       via  fdb73ecba3b provision: always use a large transaction index cache
       via  15232a62876 netcmd: Increase the transaction_index_cache_size to 200k for schemaupgrade
       via  6dbb7b0b108 VERSION: Bump version up to Samba 4.21.5...
      from  0b084c0bc6f VERSION: Disable GIT_SNAPSHOT for the 4.21.4 release.

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


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                     |   2 +-
 WHATSNEW.txt                                |  81 ++-
 ctdb/utils/pmda/Install                     |   3 +-
 ctdb/utils/pmda/Remove                      |   3 +-
 ctdb/utils/pmda/domain.h                    |   3 +-
 ctdb/utils/pmda/help                        |   3 +-
 ctdb/utils/pmda/pmda_ctdb.c                 |   3 +-
 ctdb/utils/pmda/pmns                        |   3 +-
 lib/krb5_wrap/krb5_samba.c                  |  39 +-
 lib/krb5_wrap/krb5_samba.h                  |   5 +
 python/samba/netcmd/domain/schemaupgrade.py |   6 +-
 python/samba/provision/__init__.py          |   9 +-
 python/samba/tdb_util.py                    |   5 +-
 source3/lib/interface.c                     |   5 +-
 source3/libads/kerberos_keytab.c            |  19 +-
 source3/modules/vfs_acl_tdb.c               |  51 +-
 source3/modules/vfs_ceph.c                  |   7 +-
 source3/modules/vfs_ceph_new.c              | 858 ++++++++++++++++++++--------
 source3/modules/vfs_default.c               |  61 +-
 source3/modules/vfs_glusterfs.c             |   6 +-
 source3/modules/vfs_shadow_copy2.c          |  31 +-
 source3/smbd/proto.h                        |   2 +
 source3/smbd/smb2_trans2.c                  |  18 +-
 source3/smbd/vfs.c                          |  72 +++
 source3/utils/net_ads.c                     |  11 -
 source3/wscript                             |  24 +-
 26 files changed, 940 insertions(+), 390 deletions(-)


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index a8a8ae01d2a..f0179480db1 100644
--- a/VERSION
+++ b/VERSION
@@ -27,7 +27,7 @@ SAMBA_COPYRIGHT_STRING="Copyright Andrew Tridgell and the Samba Team 1992-2024"
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=21
-SAMBA_VERSION_RELEASE=4
+SAMBA_VERSION_RELEASE=5
 
 ########################################################
 # If a official release has a serious bug              #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 6d5e65dd043..873b4ec20df 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,3 +1,81 @@
+                   ==============================
+                   Release Notes for Samba 4.21.5
+                           March 31, 2025
+                   ==============================
+
+
+This is the latest stable release of the Samba 4.21 release series.
+
+
+Changes since 4.21.4
+--------------------
+
+o  Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
+   * BUG 15795: ldb index cache is too small on known large transactions
+     (schemaupgrade, provision).
+
+o  Ralph Boehme <slow at samba.org>
+   * BUG 15822: Enable support for cephfs case insensitive behavior.
+   * BUG 15823: Subnet based interfaces definition not listening on all covered
+     IP addresses.
+
+o  Pavel Filipenský <pfilipensky at samba.org>
+   * BUG 15727: net ad join fails with "Failed to join domain: failed to create
+     kerberos keytab".
+
+o  Xavi Hernandez <xhernandez at redhat.com>
+   * BUG 15822: Enable support for cephfs case insensitive behavior.
+
+o  Volker Lendecke <vl at samba.org>
+   * BUG 15791: Remove of file or directory not possible with vfs_acl_tdb.
+
+o  Andréas Leroux <aleroux at tranquil.it>
+   * BUG 15795: ldb index cache is too small on known large transactions
+     (schemaupgrade, provision).
+
+o  Anoop C S <anoopcs at samba.org>
+   * BUG 15797: Unable to connect to CephFS subvolume shares with
+     vfs_shadow_copy2.
+   * BUG 15810: Add async io API from libcephfs to ceph_new VFS module.
+   * BUG 15818: vfs_ceph_new module does not work with other modules for
+     snapshot management.
+   * BUG 15822: Enable support for cephfs case insensitive behavior.
+   * BUG 15834: vfs_ceph_new: Add path based fallback for SMB_VFS_FCHOWN,
+     SMB_VFS_FCHMOD and SMB_VFS_FNTIMES.
+
+o  Martin Schwenke <mschwenke at ddn.com>
+   * BUG 15820: Incorrect FSF address in ctdb pcp scripts.
+
+o  Shachar Sharon <ssharon at redhat.com>
+   * BUG 15810: Add async io API from libcephfs to ceph_new VFS module.
+
+o  Andrea Venturoli <ml at netfence.it>
+   * BUG 15804: "samba-tool domain backup offline" hangs.
+
+
+#######################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical:matrix.org matrix room, or
+#samba-technical IRC channel on irc.libera.chat.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 4.1 and newer product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
                    ==============================
                    Release Notes for Samba 4.21.4
                          February 17, 2025
@@ -83,8 +161,7 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
                    ==============================
                    Release Notes for Samba 4.21.3
                           January 06, 2025
diff --git a/ctdb/utils/pmda/Install b/ctdb/utils/pmda/Install
index a56a63506a8..bd12b7486cf 100644
--- a/ctdb/utils/pmda/Install
+++ b/ctdb/utils/pmda/Install
@@ -13,8 +13,7 @@
 # for more details.
 #
 # You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+# with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # Install the ctdb PMDA and/or PMNS
 #
diff --git a/ctdb/utils/pmda/Remove b/ctdb/utils/pmda/Remove
index 7d1c509e50e..8bf0fe76e15 100644
--- a/ctdb/utils/pmda/Remove
+++ b/ctdb/utils/pmda/Remove
@@ -13,8 +13,7 @@
 # for more details.
 #
 # You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+# with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # Remove the ctdb PMDA
 #
diff --git a/ctdb/utils/pmda/domain.h b/ctdb/utils/pmda/domain.h
index 0bed7fef599..b00d32d90dc 100644
--- a/ctdb/utils/pmda/domain.h
+++ b/ctdb/utils/pmda/domain.h
@@ -13,7 +13,6 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #define CTDB 110
diff --git a/ctdb/utils/pmda/help b/ctdb/utils/pmda/help
index 0e9984eab3a..26b5385b0da 100644
--- a/ctdb/utils/pmda/help
+++ b/ctdb/utils/pmda/help
@@ -12,8 +12,7 @@
 # for more details.
 #
 # You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+# with this program; if not, see <https://www.gnu.org/licenses/>.
 #
 # ctdb PMDA help file in the ASCII format
 #
diff --git a/ctdb/utils/pmda/pmda_ctdb.c b/ctdb/utils/pmda/pmda_ctdb.c
index 4f7933de9c5..7ac8a3b38d1 100644
--- a/ctdb/utils/pmda/pmda_ctdb.c
+++ b/ctdb/utils/pmda/pmda_ctdb.c
@@ -15,8 +15,7 @@
  * for more details.
  *
  * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ * with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include "replace.h"
diff --git a/ctdb/utils/pmda/pmns b/ctdb/utils/pmda/pmns
index dc7e3ac2bfa..c9f6644d52f 100644
--- a/ctdb/utils/pmda/pmns
+++ b/ctdb/utils/pmda/pmns
@@ -15,8 +15,7 @@
  * for more details.
  *
  * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ * with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 ctdb {
diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c
index 451616c79e5..0a4a7ea986f 100644
--- a/lib/krb5_wrap/krb5_samba.c
+++ b/lib/krb5_wrap/krb5_samba.c
@@ -836,6 +836,29 @@ krb5_error_code smb_krb5_get_allowed_etypes(krb5_context context,
 krb5_error_code smb_krb5_parse_name(krb5_context context,
 				    const char *name,
 				    krb5_principal *principal)
+{
+	return smb_krb5_parse_name_flags(context, name, 0, principal);
+}
+
+/**
+ * @brief Convert a string principal name to a Kerberos principal.
+ *
+ * @param[in]  context  The library context
+ *
+ * @param[in]  name     The principal as a unix charset string.
+ *
+ * @param[in]  flags    Flags for krb5_parse_name_flags()
+ *
+ * @param[out] principal The newly allocated principal.
+ *
+ * Use krb5_free_principal() to free a principal when it is no longer needed.
+ *
+ * @return 0 on success, a Kerberos error code otherwise.
+ */
+krb5_error_code smb_krb5_parse_name_flags(krb5_context context,
+					  const char *name,
+					  int flags,
+					  krb5_principal *principal)
 {
 	krb5_error_code ret;
 	char *utf8_name;
@@ -843,17 +866,19 @@ krb5_error_code smb_krb5_parse_name(krb5_context context,
 	TALLOC_CTX *frame = talloc_stackframe();
 
 	if (!push_utf8_talloc(frame, &utf8_name, name, &converted_size)) {
-		talloc_free(frame);
+		TALLOC_FREE(frame);
 		return ENOMEM;
 	}
+	TALLOC_FREE(frame);
 
-	ret = krb5_parse_name(context, utf8_name, principal);
-	if (ret == KRB5_PARSE_MALFORMED) {
-		ret = krb5_parse_name_flags(context, utf8_name,
-					    KRB5_PRINCIPAL_PARSE_ENTERPRISE,
-					    principal);
+	ret = krb5_parse_name_flags(context, utf8_name, flags, principal);
+	if (ret != KRB5_PARSE_MALFORMED) {
+		return ret;
 	}
-	TALLOC_FREE(frame);
+
+	flags |= KRB5_PRINCIPAL_PARSE_ENTERPRISE;
+	ret = krb5_parse_name_flags(context, utf8_name, flags, principal);
+
 	return ret;
 }
 
diff --git a/lib/krb5_wrap/krb5_samba.h b/lib/krb5_wrap/krb5_samba.h
index 0acf567371c..9da8a2b4806 100644
--- a/lib/krb5_wrap/krb5_samba.h
+++ b/lib/krb5_wrap/krb5_samba.h
@@ -186,6 +186,11 @@ krb5_error_code smb_krb5_parse_name(krb5_context context,
 				const char *name, /* in unix charset */
                                 krb5_principal *principal);
 
+krb5_error_code smb_krb5_parse_name_flags(krb5_context context,
+					  const char *name, /* unix charset */
+					  int flags,
+					  krb5_principal *principal);
+
 krb5_error_code smb_krb5_unparse_name(TALLOC_CTX *mem_ctx,
 				      krb5_context context,
 				      krb5_const_principal principal,
diff --git a/python/samba/netcmd/domain/schemaupgrade.py b/python/samba/netcmd/domain/schemaupgrade.py
index ff00a771b20..33b942ca460 100644
--- a/python/samba/netcmd/domain/schemaupgrade.py
+++ b/python/samba/netcmd/domain/schemaupgrade.py
@@ -244,7 +244,11 @@ class cmd_domain_schema_upgrade(Command):
 
         temp_folder = None
 
-        samdb = SamDB(url=H, session_info=system_session(), credentials=creds, lp=lp)
+        # we set the transaction_index_cache_size to 200,000 to ensure it is
+        # not too small, if it's too small the performance of the upgrade will
+        # be negatively impacted. (similarly to the join operation)
+        samdb = SamDB(url=H, session_info=system_session(), credentials=creds, lp=lp,
+                      options=['transaction_index_cache_size:200000'])
 
         # we're not going to get far if the config doesn't allow schema updates
         if lp.get("dsdb:schema update allowed") is None:
diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index dea50aa364e..f091ccf2f18 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -1299,12 +1299,9 @@ def setup_samdb(path, session_info, provision_backend, lp, names,
         options.append("lmdb_env_size:" + str(store_size))
     if batch_mode:
         options.append("batch_mode:1")
-    if batch_mode:
-        # Estimate the number of index records in the transaction_index_cache
-        # Numbers chosen give the prime 202481 for the default backend size,
-        # which works well for a 100,000 user database
-        cache_size = int(store_size / 42423) + 1
-        options.append("transaction_index_cache_size:" + str(cache_size))
+
+    # For bulk operations like this we use a large transaction index cache.
+    options.append("transaction_index_cache_size:200000")
 
     # Load the database, but don's load the global schema and don't connect
     # quite yet
diff --git a/python/samba/tdb_util.py b/python/samba/tdb_util.py
index 99b6e02e03f..202fbdb3f8b 100644
--- a/python/samba/tdb_util.py
+++ b/python/samba/tdb_util.py
@@ -37,9 +37,10 @@ def tdb_copy(file1, file2, readonly=False):
         raise FileNotFoundError(2, "could not find tdbbackup tool: "
                                 "is tdb-tools installed?")
 
-    tdbbackup_cmd = [toolpath, "-s", ".copy.tdb", file1]
     if readonly:
-        tdbbackup_cmd.append("-r")
+        tdbbackup_cmd = [toolpath, "-r", "-s", ".copy.tdb", file1]
+    else:
+        tdbbackup_cmd = [toolpath, "-s", ".copy.tdb", file1]
 
     status = subprocess.check_call(tdbbackup_cmd, close_fds=True, shell=False)
 
diff --git a/source3/lib/interface.c b/source3/lib/interface.c
index 032362b4da3..5f351999e41 100644
--- a/source3/lib/interface.c
+++ b/source3/lib/interface.c
@@ -624,9 +624,12 @@ static void interpret_interface(char *token)
 				}
 				add_interface(&probed_ifaces[i]);
 				probed_ifaces[i].netmask = saved_mask;
-				return;
+				added = true;
 			}
 		}
+		if (added) {
+			return;
+		}
 		DEBUG(2,("interpret_interface: Can't determine ip for "
 			"broadcast address %s\n",
 			token));
diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c
index 5913db299ad..49a892e5a55 100644
--- a/source3/libads/kerberos_keytab.c
+++ b/source3/libads/kerberos_keytab.c
@@ -364,12 +364,29 @@ static krb5_error_code pw2kt_process_add_info(struct pw2kt_keytab_state *state2,
 	krb5_principal princ = NULL;
 	krb5_principal *a = NULL;
 	size_t len;
+	const char *realm = NULL;
 
-	ret = smb_krb5_parse_name(state2->context, princs, &princ);
+	ret = smb_krb5_parse_name_flags(state2->context,
+					princs,
+					KRB5_PRINCIPAL_PARSE_NO_DEF_REALM,
+					&princ);
 	if (ret != 0) {
 		DBG_ERR("Failed to parse principal: %s\n", princs);
 		return ret;
 	}
+	/* Add realm part if missing (e.g. SPNs synced from DC) */
+	realm = smb_krb5_principal_get_realm(state2, state2->context, princ);
+	if (realm == NULL || *realm == 0) {
+		ret = smb_krb5_principal_set_realm(state2->context,
+						   princ,
+						   lp_realm());
+		if (ret != 0) {
+			DBG_ERR("Failed to add realm to principal: %s\n",
+				princs);
+			return ret;
+		}
+	}
+
 	len = talloc_array_length(state2->princ_array);
 	a = talloc_realloc(state2,
 			   state2->princ_array,
diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c
index 5ecba7ba757..fb99c58b2f7 100644
--- a/source3/modules/vfs_acl_tdb.c
+++ b/source3/modules/vfs_acl_tdb.c
@@ -58,7 +58,7 @@ static bool acl_tdb_init(void)
 
 	become_root();
 	acl_db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600,
-			 DBWRAP_LOCK_ORDER_1, DBWRAP_FLAG_NONE);
+			 DBWRAP_LOCK_ORDER_2, DBWRAP_FLAG_NONE);
 	unbecome_root();
 
 	if (acl_db == NULL) {
@@ -195,38 +195,43 @@ static int unlinkat_acl_tdb(vfs_handle_struct *handle,
 			const struct smb_filename *smb_fname,
 			int flags)
 {
-	struct smb_filename *smb_fname_tmp = NULL;
-	struct db_context *db = acl_db;
-	int ret = -1;
-
-	smb_fname_tmp = cp_smb_filename_nostream(talloc_tos(), smb_fname);
-	if (smb_fname_tmp == NULL) {
-		errno = ENOMEM;
-		goto out;
-	}
+	struct stat_ex st = {};
+	int ret;
 
-	ret = vfs_stat(handle->conn, smb_fname_tmp);
-	if (ret == -1) {
-		goto out;
+	if (!is_named_stream(smb_fname)) {
+		if (VALID_STAT(smb_fname->st)) {
+			st = smb_fname->st;
+		} else {
+			ret = SMB_VFS_NEXT_FSTATAT(handle,
+						   dirfsp,
+						   smb_fname,
+						   &st,
+						   AT_SYMLINK_NOFOLLOW);
+			if (ret == -1) {
+				return ret;
+			}
+		}
 	}
 
 	if (flags & AT_REMOVEDIR) {
-		ret = rmdir_acl_common(handle,
-				dirfsp,
-				smb_fname_tmp);
+		ret = rmdir_acl_common(handle, dirfsp, smb_fname);
 	} else {
-		ret = unlink_acl_common(handle,
-				dirfsp,
-				smb_fname_tmp,
-				flags);
+		ret = unlink_acl_common(handle, dirfsp, smb_fname, flags);
 	}
 
 	if (ret == -1) {
-		goto out;
+		return -1;
+	}
+
+	if (is_named_stream(smb_fname)) {
+		/*
+		 * ACLs only stored for basenames
+		 */
+		return ret;
 	}
 
-	acl_tdb_delete(handle, db, &smb_fname_tmp->st);
- out:
+	acl_tdb_delete(handle, acl_db, &st);
+
 	return ret;
 }
 
diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index fd450af16c2..a72061d5d9d 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -363,6 +363,9 @@ static int cephwrap_statvfs(struct vfs_handle_struct *handle,
 	statbuf->TotalFileNodes = statvfs_buf.f_files;
 	statbuf->FreeFileNodes = statvfs_buf.f_ffree;
 	statbuf->FsIdentifier = statvfs_buf.f_fsid;
+	statbuf->FsCapabilities =
+		FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
+
 	DBG_DEBUG("[CEPH] f_bsize: %ld, f_blocks: %ld, f_bfree: %ld, "
 		  "f_bavail: %ld\n",
 		  (long int)statvfs_buf.f_bsize,
@@ -377,9 +380,7 @@ static uint32_t cephwrap_fs_capabilities(
 	struct vfs_handle_struct *handle,
 	enum timestamp_set_resolution *p_ts_res)
 {
-	uint32_t caps = FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
-
-	*p_ts_res = TIMESTAMP_SET_NT_OR_BETTER;
+	uint32_t caps = vfs_get_fs_capabilities(handle->conn, p_ts_res);
 
 	return caps;
 }
diff --git a/source3/modules/vfs_ceph_new.c b/source3/modules/vfs_ceph_new.c
index 1cb04f1f9ee..4622d8659cd 100644
--- a/source3/modules/vfs_ceph_new.c
+++ b/source3/modules/vfs_ceph_new.c
@@ -102,6 +102,9 @@ static const struct enum_list enum_vfs_cephfs_proxy_vals[] = {
 #define CEPH_FN(_name) typeof(_name) *_name ## _fn
 
 struct vfs_ceph_config {
+#if HAVE_CEPH_ASYNCIO
+	struct tevent_threaded_context *tctx;
+#endif
 	const char *conf_file;
 	const char *user_id;
 	const char *fsname;
@@ -110,7 +113,15 @@ struct vfs_ceph_config {
 	enum vfs_cephfs_proxy_mode proxy;
 	void *libhandle;
 
-	CEPH_FN(ceph_ll_lookup_inode);
+	/*


-- 
Samba Shared Repository



More information about the samba-cvs mailing list