Reuse the data retrieved from the cache in checkUpdate

This commit is contained in:
Robin Appelman 2014-01-20 15:21:21 +01:00
parent 62dd58aa19
commit 3d6d8d1bb6
3 changed files with 8 additions and 5 deletions

View File

@ -32,7 +32,7 @@ class Shared_Watcher extends Watcher {
* @param string $path
*/
public function checkUpdate($path) {
if ($path != '' && parent::checkUpdate($path)) {
if ($path != '' && parent::checkUpdate($path) === true) {
// since checkUpdate() has already updated the size of the subdirs,
// only apply the update to the owner's parent dirs

View File

@ -40,7 +40,7 @@ class Watcher {
* check $path for updates
*
* @param string $path
* @return boolean true if path was updated, false otherwise
* @return boolean | array true if path was updated, otherwise the cached data is returned
*/
public function checkUpdate($path) {
$cachedEntry = $this->cache->get($path);
@ -56,7 +56,7 @@ class Watcher {
$this->cache->correctFolderSize($path);
return true;
}
return false;
return $cachedEntry;
}
/**

View File

@ -801,6 +801,7 @@ class View {
* @var string $internalPath
*/
list($storage, $internalPath) = Filesystem::resolvePath($path);
$data = null;
if ($storage) {
$cache = $storage->getCache($internalPath);
$permissionsCache = $storage->getPermissionsCache($internalPath);
@ -811,10 +812,12 @@ class View {
$scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW);
} else {
$watcher = $storage->getWatcher($internalPath);
$watcher->checkUpdate($internalPath);
$data = $watcher->checkUpdate($internalPath);
}
$data = $cache->get($internalPath);
if (!is_array($data)) {
$data = $cache->get($internalPath);
}
if ($data and $data['fileid']) {
if ($includeMountPoints and $data['mimetype'] === 'httpd/unix-directory') {