From 69a68208bd971dbe9905dedd0554b3a79d2d2ce6 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 27 Nov 2009 15:44:50 +0100 Subject: s3: Restore "fake directory create times" as a share parameter --- source3/include/proto.h | 2 +- source3/modules/vfs_default.c | 6 +++--- source3/param/loadparm.c | 9 +++++---- 3 files changed, 9 insertions(+), 8 deletions(-) (limited to 'source3') diff --git a/source3/include/proto.h b/source3/include/proto.h index a2d0397d4e..f0ce7a32f8 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 cfa10692ec..9abf792769 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 ce235edf5b..29e3a2509f 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) -- cgit