diff options
author | Richard Steinmetz <richard@steinmetz.cloud> | 2021-09-14 11:15:26 +0200 |
---|---|---|
committer | Richard Steinmetz <richard@steinmetz.cloud> | 2021-09-14 15:10:44 +0200 |
commit | 8bd8e9718181aedfd2da9ebded1baea66d97f8f4 (patch) | |
tree | f3bacd0b5b5f56c06f133951d42a59d6df9ff956 /apps/workflowengine/lib | |
parent | a994ef0c4fae63b40cc0bb4ace2766b75a22ff0b (diff) | |
download | nextcloud-server-8bd8e9718181aedfd2da9ebded1baea66d97f8f4.tar.gz nextcloud-server-8bd8e9718181aedfd2da9ebded1baea66d97f8f4.zip |
Do not cache file ids in FileSystemTags inside group folders
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Diffstat (limited to 'apps/workflowengine/lib')
-rw-r--r-- | apps/workflowengine/lib/Check/FileSystemTags.php | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php index b69f7492e02..a879a8e1703 100644 --- a/apps/workflowengine/lib/Check/FileSystemTags.php +++ b/apps/workflowengine/lib/Check/FileSystemTags.php @@ -6,6 +6,7 @@ * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @author Joas Schilling <coding@schilljs.com> * @author Julius Härtl <jus@bitgrid.net> + * @author Richard Steinmetz <richard@steinmetz.cloud> * * @license GNU AGPL version 3 or any later version * @@ -131,8 +132,13 @@ class FileSystemTags implements ICheck, IFileCheck { * @return int[] */ protected function getFileIds(ICache $cache, $path, $isExternalStorage) { + // TODO: Fix caching inside group folders + // Do not cache file ids inside group folders because multiple file ids might be mapped to + // the same combination of cache id + path. + $shouldCacheFileIds = !$this->storage + ->instanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class); $cacheId = $cache->getNumericStorageId(); - if (isset($this->fileIds[$cacheId][$path])) { + if ($shouldCacheFileIds && isset($this->fileIds[$cacheId][$path])) { return $this->fileIds[$cacheId][$path]; } @@ -148,7 +154,9 @@ class FileSystemTags implements ICheck, IFileCheck { $parentIds[] = $cache->getId($path); } - $this->fileIds[$cacheId][$path] = $parentIds; + if ($shouldCacheFileIds) { + $this->fileIds[$cacheId][$path] = $parentIds; + } return $parentIds; } |