svn commit: samba r6239 - in trunk/source: param smbd
jra at samba.org
jra at samba.org
Thu Apr 7 20:59:36 GMT 2005
Author: jra
Date: 2005-04-07 20:59:35 +0000 (Thu, 07 Apr 2005)
New Revision: 6239
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6239
Log:
Fix for bug #2581. Add size limit (in kb) to stat cache.
Jeremy.
Modified:
trunk/source/param/loadparm.c
trunk/source/smbd/statcache.c
Changeset:
Modified: trunk/source/param/loadparm.c
===================================================================
--- trunk/source/param/loadparm.c 2005-04-07 19:50:54 UTC (rev 6238)
+++ trunk/source/param/loadparm.c 2005-04-07 20:59:35 UTC (rev 6239)
@@ -285,6 +285,7 @@
BOOL bNTPipeSupport;
BOOL bNTStatusSupport;
BOOL bStatCache;
+ int iMaxStatCacheSize;
BOOL bKernelOplocks;
BOOL bAllowTrustedDomains;
BOOL bLanmanAuth;
@@ -1039,6 +1040,7 @@
{"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL},
{"mangled names", P_BOOL, P_LOCAL, &sDefault.bMangledNames, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL},
{"mangled map", P_STRING, P_LOCAL, &sDefault.szMangledMap, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL | FLAG_DEPRECATED },
+ {"max stat cache size", P_INTEGER, P_GLOBAL, &Globals.iMaxStatCacheSize, NULL, NULL, FLAG_ADVANCED},
{"stat cache", P_BOOL, P_GLOBAL, &Globals.bStatCache, NULL, NULL, FLAG_ADVANCED},
{"store dos attributes", P_BOOL, P_LOCAL, &sDefault.bStoreDosAttributes, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL},
@@ -1475,6 +1477,7 @@
Globals.bNTPipeSupport = True; /* Do NT pipes by default. */
Globals.bNTStatusSupport = True; /* Use NT status by default. */
Globals.bStatCache = True; /* use stat cache by default */
+ Globals.iMaxStatCacheSize = 0; /* unlimited size in kb by default. */
Globals.restrict_anonymous = 0;
Globals.bClientLanManAuth = True; /* Do use the LanMan hash if it is available */
Globals.bClientPlaintextAuth = True; /* Do use a plaintext password if is requested by the server */
@@ -1831,6 +1834,7 @@
FN_GLOBAL_BOOL(lp_nt_pipe_support, &Globals.bNTPipeSupport)
FN_GLOBAL_BOOL(lp_nt_status_support, &Globals.bNTStatusSupport)
FN_GLOBAL_BOOL(lp_stat_cache, &Globals.bStatCache)
+FN_GLOBAL_INTEGER(lp_max_stat_cache_size, &Globals.iMaxStatCacheSize)
FN_GLOBAL_BOOL(lp_allow_trusted_domains, &Globals.bAllowTrustedDomains)
FN_GLOBAL_INTEGER(lp_restrict_anonymous, &Globals.restrict_anonymous)
FN_GLOBAL_BOOL(lp_lanman_auth, &Globals.bLanmanAuth)
Modified: trunk/source/smbd/statcache.c
===================================================================
--- trunk/source/smbd/statcache.c 2005-04-07 19:50:54 UTC (rev 6238)
+++ trunk/source/smbd/statcache.c 2005-04-07 20:59:35 UTC (rev 6239)
@@ -47,10 +47,15 @@
TDB_DATA data_val;
char *original_path;
size_t original_path_length;
+ size_t sc_size = lp_max_stat_cache_size();
if (!lp_stat_cache())
return;
+ if (sc_size && (sc_size*1024 > tdb_stat_cache->map_size)) {
+ reset_stat_cache();
+ }
+
ZERO_STRUCT(data_val);
/*
More information about the samba-cvs
mailing list