summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/filecache.php14
-rw-r--r--lib/filesystem.php7
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/filecache.php b/lib/filecache.php
index 811e8a3e6a2..de38ad99e8e 100644
--- a/lib/filecache.php
+++ b/lib/filecache.php
@@ -474,6 +474,20 @@ class OC_FileCache{
$query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache` WHERE LENGTH(`path_hash`)<30');
$query->execute();
}
+
+ /**
+ * clear filecache entries
+ * @param string user (optonal)
+ */
+ public static function clear($user=''){
+ if($user){
+ $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache` WHERE user=?');
+ $query->execute(array($user));
+ }else{
+ $query=OC_DB::prepare('DELETE FROM `*PREFIX*fscache`');
+ $query->execute();
+ }
+ }
}
//watch for changes and try to keep the cache up to date
diff --git a/lib/filesystem.php b/lib/filesystem.php
index c69970467f5..01467b54c8d 100644
--- a/lib/filesystem.php
+++ b/lib/filesystem.php
@@ -236,6 +236,13 @@ class OC_Filesystem{
}
}
}
+
+ $mtime=filemtime(OC::$SERVERROOT.'/config/mount.php');
+ $previousMTime=OC_Appconfig::getValue('files','mountconfigmtime',0);
+ if($mtime>$previousMTime){//mount config has changed, filecache needs to be updated
+ OC_FileCache::clear();
+ OC_Appconfig::setValue('files','mountconfigmtime',$mtime);
+ }
}
self::$loaded=true;