1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-28 01:58:17 +03:00

add a "stat cache" boolean smb.conf option. (defaults to on)

I think we need this so we can rule out stat cache bugs when dealing
with bug reports. If we ask a user to disable the stat cache and the
problem persists then we know it isn't a stat cache bug. The stat
cache code is sufficiently complicated that it can be pretty hard to
tell if it is causing problems or not.
(This used to be commit c83f3775cd8a7aad13571926cdd5949a07538771)
This commit is contained in:
Andrew Tridgell 1998-09-06 01:37:14 +00:00
parent fd33412fa0
commit 4fc5a74ffa
3 changed files with 15 additions and 2 deletions

View File

@ -926,6 +926,7 @@ BOOL lp_unix_password_sync(void);
BOOL lp_passwd_chat_debug(void);
BOOL lp_ole_locking_compat(void);
BOOL lp_nt_smb_support(void);
BOOL lp_stat_cache(void);
int lp_os_level(void);
int lp_max_ttl(void);
int lp_max_wins_ttl(void);

View File

@ -228,6 +228,7 @@ typedef struct
BOOL bOleLockingCompat;
BOOL bTimestampLogs;
BOOL bNTSmbSupport;
BOOL bStatCache;
} global;
static global Globals;
@ -643,6 +644,7 @@ static struct parm_struct parm_table[] =
{"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_GLOBAL},
{"mangled names", P_BOOL, P_LOCAL, &sDefault.bMangledNames, NULL, NULL, FLAG_GLOBAL},
{"mangled map", P_STRING, P_LOCAL, &sDefault.szMangledMap, NULL, NULL, FLAG_GLOBAL},
{"stat cache", P_BOOL, P_GLOBAL, &Globals.bStatCache, NULL, NULL, 0},
{"Domain Options", P_SEP, P_SEPARATOR},
{"domain sid", P_USTRING, P_GLOBAL, &Globals.szDomainSID, NULL, NULL, 0},
@ -850,6 +852,7 @@ static void init_globals(void)
Globals.bPasswdChatDebug = False;
Globals.bOleLockingCompat = True;
Globals.bNTSmbSupport = True; /* Do NT SMB's by default. */
Globals.bStatCache = True; /* use stat cache by default */
#ifdef WITH_LDAP
/* default values for ldap */
@ -1135,6 +1138,7 @@ FN_GLOBAL_BOOL(lp_unix_password_sync,&Globals.bUnixPasswdSync)
FN_GLOBAL_BOOL(lp_passwd_chat_debug,&Globals.bPasswdChatDebug)
FN_GLOBAL_BOOL(lp_ole_locking_compat,&Globals.bOleLockingCompat)
FN_GLOBAL_BOOL(lp_nt_smb_support,&Globals.bNTSmbSupport)
FN_GLOBAL_BOOL(lp_stat_cache,&Globals.bStatCache)
FN_GLOBAL_INTEGER(lp_os_level,&Globals.os_level)
FN_GLOBAL_INTEGER(lp_max_ttl,&Globals.max_ttl)

View File

@ -150,7 +150,11 @@ static void stat_cache_add( char *full_orig_name, char *orig_translated_path)
stat_cache_entry *scp;
pstring orig_name;
pstring translated_path;
int namelen = strlen(orig_translated_path);
int namelen;
if (!lp_stat_cache()) return;
namelen = strlen(orig_translated_path);
/*
* Don't cache trivial valid directory entries.
@ -235,8 +239,12 @@ static BOOL stat_cache_lookup( char *name, char *dirpath, char **start, SMB_STRU
{
stat_cache_entry *scp;
stat_cache_entry *longest_hit = NULL;
int namelen = strlen(name);
int namelen;
if (!lp_stat_cache()) return False;
namelen = strlen(name);
*start = name;
global_stat_cache_lookups++;