diff --git a/lib/private/Files/Node/Folder.php b/lib/private/Files/Node/Folder.php index 1e9088a7c19a0..b0569a24aa140 100644 --- a/lib/private/Files/Node/Folder.php +++ b/lib/private/Files/Node/Folder.php @@ -383,6 +383,8 @@ public function getRecent($limit, $offset = 0) { // Search in batches of 500 entries $searchLimit = 500; $results = []; + $searchResultCount = 0; + $count = 0; do { $searchResult = $this->recentSearch($searchLimit, $offset, $storageIds, $folderMimetype); @@ -391,6 +393,8 @@ public function getRecent($limit, $offset = 0) { break; } + $searchResultCount += count($searchResult); + $parseResult = $this->recentParse($searchResult, $mountMap, $mimetypeLoader); foreach ($parseResult as $result) { @@ -398,7 +402,8 @@ public function getRecent($limit, $offset = 0) { } $offset += $searchLimit; - } while (count($results) < $limit); + $count++; + } while (count($results) < $limit && ($searchResultCount < (3 * $limit) || $count < 5)); return array_slice($results, 0, $limit); }