summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs-xml/smbdotconf/misc/fakedirectorycreatetimes.xml2
-rw-r--r--source3/include/proto.h2
-rw-r--r--source3/modules/vfs_default.c6
-rw-r--r--source3/param/loadparm.c9
4 files changed, 10 insertions, 9 deletions
diff --git a/docs-xml/smbdotconf/misc/fakedirectorycreatetimes.xml b/docs-xml/smbdotconf/misc/fakedirectorycreatetimes.xml
index 7c8807e332a..974b6f0f30c 100644
--- a/docs-xml/smbdotconf/misc/fakedirectorycreatetimes.xml
+++ b/docs-xml/smbdotconf/misc/fakedirectorycreatetimes.xml
@@ -1,5 +1,5 @@
<samba:parameter name="fake directory create times"
- context="G"
+ context="S"
type="boolean"
xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
<description>
diff --git a/source3/include/proto.h b/source3/include/proto.h
index a2d0397d4ef..f0ce7a32f82 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4210,7 +4210,7 @@ bool lp_recursive_veto_delete(int );
bool lp_dos_filemode(int );
bool lp_dos_filetimes(int );
bool lp_dos_filetime_resolution(int );
-bool lp_fake_dir_create_times(void);
+bool lp_fake_dir_create_times(int);
bool lp_blocking_locks(int );
bool lp_inherit_perms(int );
bool lp_inherit_acls(int );
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index cfa10692ecc..9abf7927694 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -616,7 +616,7 @@ static int vfswrap_stat(vfs_handle_struct *handle,
}
result = sys_stat(smb_fname->base_name, &smb_fname->st,
- lp_fake_dir_create_times());
+ lp_fake_dir_create_times(SNUM(handle->conn)));
out:
END_PROFILE(syscall_stat);
return result;
@@ -628,7 +628,7 @@ static int vfswrap_fstat(vfs_handle_struct *handle, files_struct *fsp, SMB_STRUC
START_PROFILE(syscall_fstat);
result = sys_fstat(fsp->fh->fd,
- sbuf, lp_fake_dir_create_times());
+ sbuf, lp_fake_dir_create_times(SNUM(handle->conn)));
END_PROFILE(syscall_fstat);
return result;
}
@@ -646,7 +646,7 @@ static int vfswrap_lstat(vfs_handle_struct *handle,
}
result = sys_lstat(smb_fname->base_name, &smb_fname->st,
- lp_fake_dir_create_times());
+ lp_fake_dir_create_times(SNUM(handle->conn)));
out:
END_PROFILE(syscall_lstat);
return result;
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index ce235edf5b2..29e3a2509f3 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -357,7 +357,6 @@ struct global {
int cups_connection_timeout;
char *szSMBPerfcountModule;
bool bMapUntrustedToDomain;
- bool bFakeDirCreateTimes;
};
static struct global Globals;
@@ -475,6 +474,7 @@ struct service {
bool bDosFilemode;
bool bDosFiletimes;
bool bDosFiletimeResolution;
+ bool bFakeDirCreateTimes;
bool bBlockingLocks;
bool bInheritPerms;
bool bInheritACLS;
@@ -618,6 +618,7 @@ static struct service sDefault = {
False, /* bDosFilemode */
True, /* bDosFiletimes */
False, /* bDosFiletimeResolution */
+ False, /* bFakeDirCreateTimes */
True, /* bBlockingLocks */
False, /* bInheritPerms */
False, /* bInheritACLS */
@@ -4301,8 +4302,8 @@ static struct parm_struct parm_table[] = {
{
.label = "fake directory create times",
.type = P_BOOL,
- .p_class = P_GLOBAL,
- .ptr = &Globals.bFakeDirCreateTimes,
+ .p_class = P_LOCAL,
+ .ptr = &sDefault.bFakeDirCreateTimes,
.special = NULL,
.enum_list = NULL,
.flags = FLAG_ADVANCED | FLAG_GLOBAL,
@@ -5629,7 +5630,7 @@ FN_LOCAL_BOOL(lp_recursive_veto_delete, bDeleteVetoFiles)
FN_LOCAL_BOOL(lp_dos_filemode, bDosFilemode)
FN_LOCAL_BOOL(lp_dos_filetimes, bDosFiletimes)
FN_LOCAL_BOOL(lp_dos_filetime_resolution, bDosFiletimeResolution)
-FN_GLOBAL_BOOL(lp_fake_dir_create_times, &Globals.bFakeDirCreateTimes)
+FN_LOCAL_BOOL(lp_fake_dir_create_times, bFakeDirCreateTimes)
FN_LOCAL_BOOL(lp_blocking_locks, bBlockingLocks)
FN_LOCAL_BOOL(lp_inherit_perms, bInheritPerms)
FN_LOCAL_BOOL(lp_inherit_acls, bInheritACLS)