diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index cdbbbf3d3cd10ab90277ea528eb4b4af0a845f3a..c7dc99c55cb6fdf05cc8eea35535e7b2b85f7136 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -45,6 +45,7 @@ class Filesystem {
 	 */
 	static private $defaultInstance;
 
+	static private $usersSetup = array();
 
 	/**
 	 * classname which used for hooks handling
@@ -321,7 +322,10 @@ class Filesystem {
 		if ($user == '') {
 			$user = \OC_User::getUser();
 		}
-		$parser = new \OC\ArrayParser();
+		if (isset(self::$usersSetup[$user])) {
+			return;
+		}
+		self::$usersSetup[$user] = true;
 
 		$root = \OC_User::getHome($user);
 
@@ -427,6 +431,7 @@ class Filesystem {
 	 */
 	public static function clearMounts() {
 		if (self::$mounts) {
+			self::$usersSetup = array();
 			self::$mounts->clear();
 		}
 	}