summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/include/ntvfs.h1
-rw-r--r--source4/ntvfs/ntvfs_base.c17
2 files changed, 11 insertions, 7 deletions
diff --git a/source4/include/ntvfs.h b/source4/include/ntvfs.h
index b972a4ef99..af23f10607 100644
--- a/source4/include/ntvfs.h
+++ b/source4/include/ntvfs.h
@@ -82,6 +82,7 @@ struct ntvfs_ops {
/* this structure is used by backends to determine the size of some critical types */
struct ntvfs_critical_sizes {
+ int interface_version;
int sizeof_ntvfs_ops;
int sizeof_SMB_OFF_T;
int sizeof_tcon_context;
diff --git a/source4/ntvfs/ntvfs_base.c b/source4/ntvfs/ntvfs_base.c
index 11f39c5d59..ad1b3ae671 100644
--- a/source4/ntvfs/ntvfs_base.c
+++ b/source4/ntvfs/ntvfs_base.c
@@ -88,14 +88,17 @@ struct ntvfs_ops *ntvfs_backend_byname(const char *name, enum ntvfs_type type)
This can be used by backends to either detect compilation errors, or provide
multiple implementations for different smbd compilation options in one module
*/
-int ntvfs_interface_version(struct ntvfs_critical_sizes *sizes)
+const struct ntvfs_critical_sizes *ntvfs_interface_version(void)
{
- sizes->sizeof_ntvfs_ops = sizeof(struct ntvfs_ops);
- sizes->sizeof_SMB_OFF_T = sizeof(SMB_OFF_T);
- sizes->sizeof_tcon_context = sizeof(struct tcon_context);
- sizes->sizeof_request_context = sizeof(struct request_context);
-
- return NTVFS_INTERFACE_VERSION;
+ static const struct ntvfs_critical_sizes critical_sizes = {
+ NTVFS_INTERFACE_VERSION,
+ sizeof(struct ntvfs_ops),
+ sizeof(SMB_OFF_T),
+ sizeof(struct tcon_context),
+ sizeof(struct request_context),
+ };
+
+ return &critical_sizes;
}