From 9590a7b8013a497dd2dd1164a61646c3648e3294 Mon Sep 17 00:00:00 2001 From: Benjamin Gaussorgues Date: Mon, 26 Jan 2026 13:34:22 +0100 Subject: [PATCH 1/2] feat: optimize user mount cache Signed-off-by: Benjamin Gaussorgues --- lib/private/Files/Config/UserMountCache.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php index 29f3cd4532f36..3c32273288660 100644 --- a/lib/private/Files/Config/UserMountCache.php +++ b/lib/private/Files/Config/UserMountCache.php @@ -382,7 +382,8 @@ public function getMountsForFileId($fileId, $user = null) { $query = $builder->select('storage_id', 'root_id', 'user_id', 'mount_point', 'mount_id', 'f.path', 'mount_provider_class') ->from('mounts', 'm') ->innerJoin('m', 'filecache', 'f', $builder->expr()->eq('m.root_id', 'f.fileid')) - ->where($builder->expr()->eq('storage_id', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT))) + ->where($builder->expr()->eq('m.storage_id', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT))) + ->andWhere($builder->expr()->eq('m.storage_id', 'f.storage')) # Hint for DBs ->andWhere( $builder->expr()->orX( $builder->expr()->eq('f.fileid', $builder->createNamedParameter($fileId)), From e00b60b89c51f51d6ec619a2d1d5f5b5b8528473 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 29 Jan 2026 16:57:31 +0100 Subject: [PATCH 2/2] fix: make getMountsForFileId work with sharding again Signed-off-by: Robin Appelman --- lib/private/Files/Config/UserMountCache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php index 3c32273288660..b28a733962b32 100644 --- a/lib/private/Files/Config/UserMountCache.php +++ b/lib/private/Files/Config/UserMountCache.php @@ -383,7 +383,7 @@ public function getMountsForFileId($fileId, $user = null) { ->from('mounts', 'm') ->innerJoin('m', 'filecache', 'f', $builder->expr()->eq('m.root_id', 'f.fileid')) ->where($builder->expr()->eq('m.storage_id', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT))) - ->andWhere($builder->expr()->eq('m.storage_id', 'f.storage')) # Hint for DBs + ->andWhere($builder->expr()->eq('f.storage', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT))) ->andWhere( $builder->expr()->orX( $builder->expr()->eq('f.fileid', $builder->createNamedParameter($fileId)),