summaryrefslogtreecommitdiffstats
path: root/lib/private/files/cache/updater.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/files/cache/updater.php')
-rw-r--r--lib/private/files/cache/updater.php14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php
index 2de0c8fe067..c82ee33a1b1 100644
--- a/lib/private/files/cache/updater.php
+++ b/lib/private/files/cache/updater.php
@@ -193,12 +193,26 @@ class Updater {
$targetCache->correctFolderSize($targetInternalPath);
$this->correctParentStorageMtime($sourceStorage, $sourceInternalPath);
$this->correctParentStorageMtime($targetStorage, $targetInternalPath);
+ $this->updateStorageMTimeOnly($targetStorage, $targetInternalPath);
$this->propagator->addChange($source);
$this->propagator->addChange($target);
$this->propagator->propagateChanges();
}
}
+ private function updateStorageMTimeOnly($storage, $internalPath) {
+ $cache = $storage->getCache();
+ $fileId = $cache->getId($internalPath);
+ if ($fileId !== -1) {
+ $cache->update(
+ $fileId, [
+ 'mtime' => null, // this magic tells it to not overwrite mtime
+ 'storage_mtime' => $storage->filemtime($internalPath)
+ ]
+ );
+ }
+ }
+
/**
* update the storage_mtime of the direct parent in the cache to the mtime from the storage
*