The branch, master has been updated
via a44abbfde04 docs-xml: fix manpage for "net offlinejoin requestodj"
via 701d55846bc vfs_ceph_new: improved debug logging
via bd8e0e1a18c vfs_ceph_new: limit to 80-chars lines
from 6488787d65e s4/dlz: add support for bind 9.20
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a44abbfde048c378fcadea0d597762f7eb10a6a4
Author: Günther Deschner <[email protected]>
Date: Wed Apr 9 13:52:08 2025 +0200
docs-xml: fix manpage for "net offlinejoin requestodj"
One actually does *NOT* need to provide AD credentials to process a
requestodj operation. This is run as root and populates Samba's
databases based on the ODJ blob. Thanks John Mulligan for pointing this out.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15964
Guenther
Signed-off-by: Guenther Deschner <[email protected]>
Reviewed-by: John Mulligan <[email protected]>
Autobuild-User(master): Günther Deschner <[email protected]>
Autobuild-Date(master): Thu Dec 11 15:19:13 UTC 2025 on atb-devel-224
commit 701d55846bc48988cd3f353e7555fb170b1fb767
Author: Shachar Sharon <[email protected]>
Date: Wed Dec 3 15:41:22 2025 +0200
vfs_ceph_new: improved debug logging
Use consistent style in debug logging, using 'key=value' conventions.
When printing string values use the '%s' format.
Also, fallowing commit 70aab08c6 ("smbd: Use fsp_str_dbg() in DEBUGs")
use this function with explicit var-name when printing 'files_struct'.
Signed-off-by: Shachar Sharon <[email protected]>
Reviewed-by: Anoop C S <[email protected]>
Reviewed-by: Shweta Sodani <[email protected]>
Reviewed-by: Guenther Deschner <[email protected]>
commit bd8e0e1a18c43313d58acfdde5f573b5d1eaf05f
Author: Shachar Sharon <[email protected]>
Date: Wed Dec 3 13:18:35 2025 +0200
vfs_ceph_new: limit to 80-chars lines
Top level .clang-format uses 'ColumnLimit: 80'; however few lines of
code exceeded that limit. Align with common Samba coding conventions.
Signed-off-by: Shachar Sharon <[email protected]>
-----------------------------------------------------------------------
Summary of changes:
docs-xml/manpages/net.8.xml | 2 +-
source3/modules/vfs_ceph_new.c | 392 +++++++++++++++++++++++++----------------
2 files changed, 237 insertions(+), 157 deletions(-)
Changeset truncated at 500 lines:
diff --git a/docs-xml/manpages/net.8.xml b/docs-xml/manpages/net.8.xml
index d9293d0bb34..d5043e7d07b 100644
--- a/docs-xml/manpages/net.8.xml
+++ b/docs-xml/manpages/net.8.xml
@@ -3277,7 +3277,7 @@ Requests an offline domain join by providing file-based
provisioning data. This
<para>
Example:
- net offlinejoin requestodj -U administrator%secret
loadfile=provisioning.txt
+ net offlinejoin requestodj loadfile=provisioning.txt
</para>
</refsect3>
diff --git a/source3/modules/vfs_ceph_new.c b/source3/modules/vfs_ceph_new.c
index 1ef3ca3714a..366d855585c 100644
--- a/source3/modules/vfs_ceph_new.c
+++ b/source3/modules/vfs_ceph_new.c
@@ -207,7 +207,7 @@ static bool cephmount_cache_add(const char *cookie,
entry->mount = mount;
entry->count = 1;
- DBG_DEBUG("[CEPH] adding mount cache entry: cookie='%s'\n",
+ DBG_DEBUG("[CEPH] adding mount cache entry: cookie=%s\n",
entry->cookie);
DLIST_ADD(cephmount_cached, entry);
@@ -220,12 +220,16 @@ static bool cephmount_cache_change_ref(struct
cephmount_cached *entry, int n)
entry->count += n;
DBG_DEBUG("[CEPH] updated mount cache entry: count=%" PRId32
- "change=%+d cookie='%s'\n", entry->count, n, entry->cookie);
+ "change=%+d cookie=%s\n",
+ entry->count,
+ n,
+ entry->cookie);
if (entry->count && (n < 0)) {
DBG_DEBUG("[CEPH] mount cache entry still in use: "
- "count=%" PRId32 " cookie='%s'\n",
- entry->count, entry->cookie);
+ "count=%" PRId32 " cookie=%s\n",
+ entry->count,
+ entry->cookie);
}
return (entry->count == 0);
}
@@ -250,7 +254,7 @@ static bool cephmount_cache_remove(struct cephmount_cached
*entry)
return false;
}
- DBG_DEBUG("[CEPH] removing mount cache entry: cookie='%s'\n",
+ DBG_DEBUG("[CEPH] removing mount cache entry: cookie=%s\n",
entry->cookie);
DLIST_REMOVE(cephmount_cached, entry);
talloc_free(entry);
@@ -271,7 +275,7 @@ static int cephmount_update_conf(struct vfs_ceph_config
*config,
const char *option,
const char *value)
{
- DBG_DEBUG("[CEPH] calling ceph_conf_set: option='%s' value='%s'\n",
+ DBG_DEBUG("[CEPH] calling ceph_conf_set: option=%s value=%s\n",
option,
value);
@@ -285,7 +289,7 @@ static struct ceph_mount_info *cephmount_mount_fs(
struct ceph_mount_info *mnt = NULL;
/* if config_file and/or user_id are NULL, ceph will use defaults */
- DBG_DEBUG("[CEPH] calling ceph_create: user_id='%s'\n",
+ DBG_DEBUG("[CEPH] calling ceph_create: user_id=%s\n",
(config->user_id != NULL) ? config->user_id : "");
ret = config->ceph_create_fn(&mnt, config->user_id);
if (ret) {
@@ -293,7 +297,7 @@ static struct ceph_mount_info *cephmount_mount_fs(
return NULL;
}
- DBG_DEBUG("[CEPH] calling ceph_conf_read_file: conf_file='%s'\n",
+ DBG_DEBUG("[CEPH] calling ceph_conf_read_file: conf_file=%s\n",
(config->conf_file == NULL) ? "default path"
: config->conf_file);
ret = config->ceph_conf_read_file_fn(mnt, config->conf_file);
@@ -324,7 +328,8 @@ static struct ceph_mount_info *cephmount_mount_fs(
*/
if (config->fsname != NULL) {
DBG_DEBUG("[CEPH] calling ceph_select_filesystem: "
- "fsname='%s'\n", config->fsname);
+ "fsname=%s\n",
+ config->fsname);
ret = config->ceph_select_filesystem_fn(mnt, config->fsname);
if (ret < 0) {
goto out;
@@ -342,13 +347,13 @@ out:
if (ret != 0) {
config->ceph_release_fn(mnt);
mnt = NULL;
- DBG_ERR("[CEPH] mount failed: user_id='%s' fsname='%s' %s",
+ DBG_ERR("[CEPH] mount failed: user_id=%s fsname=%s %s",
(config->user_id != NULL) ? config->user_id : "",
(config->fsname != NULL) ? config->fsname : "",
strerror(-ret));
errno = -ret;
} else {
- DBG_DEBUG("[CEPH] mount done: user_id='%s' fsname='%s'",
+ DBG_DEBUG("[CEPH] mount done: user_id=%s fsname=%s",
(config->user_id != NULL) ? config->user_id : "",
(config->fsname != NULL) ? config->fsname : "");
}
@@ -382,7 +387,9 @@ static bool vfs_cephfs_load_lib(struct vfs_ceph_config
*config)
DBG_ERR("[CEPH] %s\n", dlerror());
return false;
}
- DBG_DEBUG("[CEPH] %s, trying %s\n", dlerror(), libname);
+ DBG_DEBUG("[CEPH] dlopen: error=%s libname=%s\n",
+ dlerror(),
+ libname);
FALL_THROUGH;
} else {
break;
@@ -560,7 +567,7 @@ connect_ok:
config->mount = entry->mount;
config->mount_entry = entry;
DBG_INFO("[CEPH] connection established with the server: "
- "snum=%d cookie='%s'\n",
+ "snum=%d cookie=%s\n",
SNUM(handle->conn),
cookie);
@@ -770,9 +777,7 @@ static int vfs_ceph_add_fh(struct vfs_handle_struct *handle,
(*out_cfh)->config = config;
(*out_cfh)->fd = -1;
out:
- DBG_DEBUG("[CEPH] vfs_ceph_add_fh: name = %s ret = %d\n",
- fsp_str_dbg(fsp),
- ret);
+ DBG_DEBUG("[CEPH] add fh: fsp_name=%s ret=%d\n", fsp_str_dbg(fsp), ret);
return ret;
}
@@ -789,7 +794,7 @@ static int vfs_ceph_fetch_fh(struct vfs_handle_struct
*handle,
int ret = 0;
*out_cfh = VFS_FETCH_FSP_EXTENSION(handle, fsp);
ret = (*out_cfh == NULL) ? -EBADF : 0;
- DBG_DEBUG("[CEPH] vfs_ceph_fetch_fh: name = %s ret = %d\n",
+ DBG_DEBUG("[CEPH] fetch fh: fsp_name=%s ret=%d\n",
fsp_str_dbg(fsp),
ret);
return ret;
@@ -802,7 +807,7 @@ static int vfs_ceph_fetch_io_fh(struct vfs_handle_struct
*handle,
int ret = 0;
*out_cfh = VFS_FETCH_FSP_EXTENSION(handle, fsp);
ret = (*out_cfh == NULL) || ((*out_cfh)->fh == NULL) ? -EBADF : 0;
- DBG_DEBUG("[CEPH] vfs_ceph_fetch_io_fh: name = %s ret = %d\n",
+ DBG_DEBUG("[CEPH] fetch io fh: fsp_name=%s ret=%d\n",
fsp_str_dbg(fsp),
ret);
return ret;
@@ -881,7 +886,8 @@ static int vfs_ceph_ll_statfs(const struct
vfs_handle_struct *handle,
return -ENOMEM);
ret = config->ceph_ll_statfs_fn(config->mount, iref->inode, stbuf);
- DBG_DEBUG("[CEPH] ceph_ll_statfs: ino=%" PRIu64 " ret=%d\n", iref->ino,
ret);
+ DBG_DEBUG("[CEPH] ceph_ll_statfs: ino=%" PRIu64 " ret=%d\n",
+ iref->ino, ret);
return ret;
}
@@ -960,7 +966,8 @@ static int vfs_ceph_ll_chown(struct vfs_handle_struct
*handle,
CEPH_STATX_UID | CEPH_STATX_GID,
uperm);
vfs_ceph_userperm_del(config, uperm);
- DBG_DEBUG("[CEPH] ceph_ll_setattr: ino=%" PRIu64 " ret=%d\n",
iref->ino, ret);
+ DBG_DEBUG("[CEPH] ceph_ll_setattr: ino=%" PRIu64 " ret=%d\n",
+ iref->ino, ret);
return ret;
}
@@ -997,7 +1004,8 @@ static int vfs_ceph_ll_chmod(const struct
vfs_handle_struct *handle,
SMB_VFS_HANDLE_GET_DATA(handle, config, struct vfs_ceph_config,
return -ENOMEM);
- DBG_DEBUG("[CEPH] ceph_ll_setattr: ino=%" PRIu64 " mode=%o\n",
iref->ino, mode);
+ DBG_DEBUG("[CEPH] ceph_ll_setattr: ino=%" PRIu64 " mode=%o\n",
+ iref->ino, mode);
uperm = vfs_ceph_userperm_new(config, handle->conn);
if (uperm == NULL) {
@@ -1172,7 +1180,10 @@ static int vfs_ceph_ll_create(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_create: parent-ino=%" PRIu64 " name=%s "
- "mode=%o\n", parent->ino, name, mode);
+ "mode=%o\n",
+ parent->ino,
+ name,
+ mode);
ret = config->ceph_ll_create_fn(config->mount,
parent->inode,
@@ -1197,9 +1208,13 @@ static int vfs_ceph_ll_create(const struct
vfs_handle_struct *handle,
vfs_ceph_assign_fh_fd(cfh);
out:
- DBG_DEBUG("[CEPH] ceph_ll_create: parent-ino=%" PRIu64
- " ino=%" PRIu64 " name=%s mode=%o ret=%d",
- parent->ino, cfh->iref.ino, name, mode, ret);
+ DBG_DEBUG("[CEPH] ceph_ll_create: parent-ino=%" PRIu64 " ino=%" PRIu64
+ " name=%s mode=%o ret=%d",
+ parent->ino,
+ cfh->iref.ino,
+ name,
+ mode,
+ ret);
return ret;
}
@@ -1219,7 +1234,8 @@ static int vfs_ceph_ll_lookup(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_lookup: parent-ino=%" PRIu64 " name=%s\n",
- parent->ino, name);
+ parent->ino,
+ name);
uperm = vfs_ceph_userperm_new(config, handle->conn);
if (uperm == NULL) {
@@ -1244,8 +1260,11 @@ static int vfs_ceph_ll_lookup(const struct
vfs_handle_struct *handle,
iref->ino = stx.stx_ino;
iref->owner = true;
out:
- DBG_DEBUG("[CEPH] ceph_ll_lookup: parent-ino=%" PRIu64 " name=%s
ret=%d\n",
- parent->ino, name, ret);
+ DBG_DEBUG("[CEPH] ceph_ll_lookup: parent-ino=%" PRIu64 " name=%s "
+ "ret=%d\n",
+ parent->ino,
+ name,
+ ret);
return ret;
}
@@ -1264,7 +1283,8 @@ static int vfs_ceph_ll_lookup2(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_lookup: parent-ino=%" PRIu64 " name=%s\n",
- parent_fh->iref.ino, name);
+ parent_fh->iref.ino,
+ name);
ret = config->ceph_ll_lookup_fn(config->mount,
parent_fh->iref.inode,
@@ -1281,8 +1301,11 @@ static int vfs_ceph_ll_lookup2(const struct
vfs_handle_struct *handle,
iref->ino = stx->stx_ino;
iref->owner = true;
out:
- DBG_DEBUG("[CEPH] ceph_ll_lookup: parent-ino=%" PRIu64 " name=%s
ret=%d\n",
- parent_fh->iref.ino, name, ret);
+ DBG_DEBUG("[CEPH] ceph_ll_lookup: parent-ino=%" PRIu64 " name=%s "
+ "ret=%d\n",
+ parent_fh->iref.ino,
+ name,
+ ret);
return ret;
}
@@ -1409,7 +1432,10 @@ static int vfs_ceph_ll_mkdirat(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_mkdir: parent-ino=%" PRIu64 " name=%s "
- "mode=%o\n", dircfh->iref.ino, name, mode);
+ "mode=%o\n",
+ dircfh->iref.ino,
+ name,
+ mode);
ret = config->ceph_ll_mkdir_fn(config->mount,
dircfh->iref.inode,
@@ -1429,7 +1455,11 @@ static int vfs_ceph_ll_mkdirat(const struct
vfs_handle_struct *handle,
out:
DBG_DEBUG("[CEPH] ceph_ll_mkdir: parent-ino=%" PRIu64 " name=%s "
- "mode=%o ret=%d\n", dircfh->iref.ino, name, mode, ret);
+ "mode=%o ret=%d\n",
+ dircfh->iref.ino,
+ name,
+ mode,
+ ret);
return ret;
}
@@ -1443,7 +1473,8 @@ static int vfs_ceph_ll_rmdir(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_rmdir: parent-ino=%" PRIu64 " name=%s\n",
- dircfh->iref.ino, name);
+ dircfh->iref.ino,
+ name);
return config->ceph_ll_rmdir_fn(config->mount,
dircfh->iref.inode,
@@ -1461,7 +1492,8 @@ static int vfs_ceph_ll_unlinkat(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_unlink: parent-ino=%" PRIu64 " name=%s\n",
- dircfh->iref.ino, name);
+ dircfh->iref.ino,
+ name);
return config->ceph_ll_unlink_fn(config->mount,
dircfh->iref.inode,
@@ -1484,7 +1516,8 @@ static int vfs_ceph_ll_symlinkat(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_symlink: parent-ino=%" PRIu64 " name=%s\n",
- dircfh->iref.ino, name);
+ dircfh->iref.ino,
+ name);
ret = config->ceph_ll_symlink_fn(config->mount,
dircfh->iref.inode,
@@ -1503,7 +1536,8 @@ static int vfs_ceph_ll_symlinkat(const struct
vfs_handle_struct *handle,
out_iref->owner = true;
out:
DBG_DEBUG("[CEPH] ceph_ll_symlink: parent-ino=%" PRIu64 " name=%s\n",
- dircfh->iref.ino, name);
+ dircfh->iref.ino,
+ name);
return ret;
}
@@ -1663,7 +1697,10 @@ static int vfs_ceph_ll_rename(const struct
vfs_handle_struct *handle,
DBG_DEBUG("[CEPH] ceph_ll_rename: parent-ino=%" PRIu64
" name=%s newparent-ino=%" PRIu64 " newname=%s\n",
- parent->iref.ino, name, newparent->iref.ino, newname);
+ parent->iref.ino,
+ name,
+ newparent->iref.ino,
+ newname);
return config->ceph_ll_rename_fn(config->mount,
parent->iref.inode,
@@ -1689,7 +1726,10 @@ static int vfs_ceph_ll_mknod(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_mknod: parent-ino=%" PRIu64 " name=%s "
- "mode=%o\n", parent->iref.ino, name, mode);
+ "mode=%o\n",
+ parent->iref.ino,
+ name,
+ mode);
ret = config->ceph_ll_mknod_fn(config->mount,
parent->iref.inode,
@@ -1723,7 +1763,8 @@ static int vfs_ceph_ll_getxattr(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_getxattr: ino=%" PRIu64 " name=%s\n",
- iref->ino, name);
+ iref->ino,
+ name);
uperm = vfs_ceph_userperm_new(config, handle->conn);
if (uperm == NULL) {
@@ -1742,7 +1783,9 @@ static int vfs_ceph_ll_getxattr(const struct
vfs_handle_struct *handle,
out:
DBG_DEBUG("[CEPH] ceph_ll_getxattr: ino=%" PRIu64 " name=%s ret=%d\n",
- iref->ino, name, ret);
+ iref->ino,
+ name,
+ ret);
return ret;
}
@@ -1758,7 +1801,8 @@ static int vfs_ceph_ll_fgetxattr(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_getxattr: ino=%" PRIu64 " name=%s\n",
- cfh->iref.ino, name);
+ cfh->iref.ino,
+ name);
return config->ceph_ll_getxattr_fn(config->mount,
cfh->iref.inode,
@@ -1783,7 +1827,10 @@ static int vfs_ceph_ll_setxattr(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_setxattr: ino=%" PRIu64 " name=%s "
- "size=%zu\n", iref->ino, name, size);
+ "size=%zu\n",
+ iref->ino,
+ name,
+ size);
uperm = vfs_ceph_userperm_new(config, handle->conn);
if (uperm == NULL) {
@@ -1802,7 +1849,11 @@ static int vfs_ceph_ll_setxattr(const struct
vfs_handle_struct *handle,
vfs_ceph_userperm_del(config, uperm);
out:
DBG_DEBUG("[CEPH] ceph_ll_setxattr: ino=%" PRIu64 " name=%s "
- "size=%zu ret=%d\n", iref->ino, name, size, ret);
+ "size=%zu ret=%d\n",
+ iref->ino,
+ name,
+ size,
+ ret);
return ret;
}
@@ -1820,7 +1871,10 @@ static int vfs_ceph_ll_fsetxattr(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_setxattr: ino=%" PRIu64 " name=%s "
- "size=%zu\n", cfh->iref.ino, name, size);
+ "size=%zu\n",
+ cfh->iref.ino,
+ name,
+ size);
return config->ceph_ll_setxattr_fn(config->mount,
cfh->iref.inode,
@@ -1861,7 +1915,8 @@ static int vfs_ceph_ll_listxattr(const struct
vfs_handle_struct *handle,
vfs_ceph_userperm_del(config, uperm);
out:
- DBG_DEBUG("[CEPH] ceph_ll_listxattr: ino=%" PRIu64 " ret=%d\n",
iref->ino, ret);
+ DBG_DEBUG("[CEPH] ceph_ll_listxattr: ino=%" PRIu64 " ret=%d\n",
+ iref->ino, ret);
return ret;
}
@@ -1898,7 +1953,8 @@ static int vfs_ceph_ll_removexattr(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_removexattr: ino=%" PRIu64 " name=%s\n",
- iref->ino, name);
+ iref->ino,
+ name);
uperm = vfs_ceph_userperm_new(config, handle->conn);
if (uperm == NULL) {
@@ -1911,8 +1967,11 @@ static int vfs_ceph_ll_removexattr(const struct
vfs_handle_struct *handle,
vfs_ceph_userperm_del(config, uperm);
out:
- DBG_DEBUG("[CEPH] ceph_ll_removexattr: ino=%" PRIu64 " name=%s
ret=%d\n",
- iref->ino, name, ret);
+ DBG_DEBUG("[CEPH] ceph_ll_removexattr: ino=%" PRIu64 " name=%s "
+ "ret=%d\n",
+ iref->ino,
+ name,
+ ret);
return ret;
}
@@ -1926,7 +1985,8 @@ static int vfs_ceph_ll_fremovexattr(const struct
vfs_handle_struct *handle,
return -ENOMEM);
DBG_DEBUG("[CEPH] ceph_ll_removexattr: ino=%" PRIu64 " name=%s\n",
- cfh->iref.ino, name);
+ cfh->iref.ino,
+ name);
return config->ceph_ll_removexattr_fn(config->mount,
cfh->iref.inode,
@@ -1981,7 +2041,8 @@ static int vfs_ceph_iget(const struct vfs_handle_struct
*handle,
iref->ino = stx.stx_ino;
iref->owner = true;
out:
- DBG_DEBUG("[CEPH] iget: %s ino=%" PRIu64 " ret=%d\n", name, iref->ino,
ret);
+ DBG_DEBUG("[CEPH] iget: %s ino=%" PRIu64 " ret=%d\n",
+ name, iref->ino, ret);
return ret;
}
@@ -2060,8 +2121,8 @@ static uint64_t vfs_ceph_disk_free(struct
vfs_handle_struct *handle,
*dfree = (uint64_t)statvfs_buf.f_bavail;
*dsize = (uint64_t)statvfs_buf.f_blocks;
- DBG_DEBUG("[CEPH] bsize: %" PRIu64 ", dfree: %" PRIu64
- ", dsize: %" PRIu64 "\n",
+ DBG_DEBUG("[CEPH] disk_free: bsize=%" PRIu64 " dfree=%" PRIu64
+ " dsize=%" PRIu64 "\n",
*bsize,
*dfree,
*dsize);
@@ -2103,8 +2164,9 @@ static int vfs_ceph_check_case_sensitivity(struct
vfs_handle_struct *handle,
if (ret < 0) {
if (ret != -ENODATA) {
DBG_ERR("[CEPH] failed to get case sensitivity "
- "settings: path='%s' %s",
- handle->conn->connectpath, strerror(-ret));
+ "settings: path=%s ret=%d",
+ handle->conn->connectpath,
+ ret);
goto out;
}
@@ -2168,8 +2230,8 @@ static int vfs_ceph_statvfs(struct vfs_handle_struct
*handle,
statbuf->FsIdentifier = statvfs_buf.f_fsid;
--
Samba Shared Repository