summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-09-06 23:10:24 +0200
committerRobin Appelman <icewind@owncloud.com>2012-09-06 23:10:33 +0200
commit2144b2f37ae90faa03a44e5526c29893c5c7e7d0 (patch)
tree110aa1cb5df0a159ba42001468e31d633def8e84
parent39577495e122a9d94507f99c6b3f9f3430735c13 (diff)
downloadnextcloud-server-2144b2f37ae90faa03a44e5526c29893c5c7e7d0.tar.gz
nextcloud-server-2144b2f37ae90faa03a44e5526c29893c5c7e7d0.zip
clear the filecache if the mount configuration has changed
-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;