diff --git a/lib/private/files/cache/upgrade.php b/lib/private/files/cache/upgrade.php
index cfb9a1173113fffd6f278acb780a05e87879001d..e3a46896cbfa49a18f26d0d2446346a170a61a9f 100644
--- a/lib/private/files/cache/upgrade.php
+++ b/lib/private/files/cache/upgrade.php
@@ -192,7 +192,15 @@ class Upgrade {
 	 */
 	static function needUpgrade($user) {
 		$cacheVersion = (int)\OCP\Config::getUserValue($user, 'files', 'cache_version', 4);
-		return $cacheVersion < 5;
+		if ($cacheVersion < 5) {
+			$legacy = new \OC\Files\Cache\Legacy($user);
+			if ($legacy->hasItems()) {
+				return true;
+			}
+			self::upgradeDone($user);
+		}
+
+		return false;
 	}
 
 	/**