Fix size propagation over shared storage boundary

This commit is contained in:
Vincent Petry 2015-03-05 22:23:47 +01:00
parent 9f5433c0c3
commit 4322287fc3

View file

@ -394,6 +394,28 @@ class Shared_Cache extends Cache {
return $result;
}
/**
* update the folder size and the size of all parent folders
*
* @param string|boolean $path
* @param array $data (optional) meta data of the folder
*/
public function correctFolderSize($path, $data = null) {
$this->calculateFolderSize($path, $data);
if ($path !== '') {
$parent = dirname($path);
if ($parent === '.' or $parent === '/') {
$parent = '';
}
$this->correctFolderSize($parent);
} else {
// bubble up to source cache
$sourceCache = $this->getSourceCache($path);
$parent = dirname($this->files[$path]);
$sourceCache->correctFolderSize($parent);
}
}
/**
* get the size of a folder and set it in the cache
*