From 04805d0be9add28f0b374df01ca4211a997d21d0 Mon Sep 17 00:00:00 2001
From: Michael Gapczynski <mtgap@owncloud.com>
Date: Wed, 29 May 2013 10:19:03 -0400
Subject: [PATCH] Only update metadata that has changed

---
 lib/files/cache/scanner.php | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php
index 46122221dc..cd022d2513 100644
--- a/lib/files/cache/scanner.php
+++ b/lib/files/cache/scanner.php
@@ -78,7 +78,7 @@ class Scanner {
 						$this->scanFile($parent);
 					}
 				}
-				if($cacheData = $this->cache->get($file)) {
+				if ($cacheData = $this->cache->get($file)) {
 					if ($data['mtime'] === $cacheData['mtime'] &&
 						$data['size'] === $cacheData['size']) {
 						$data['etag'] = $cacheData['etag'];
@@ -89,7 +89,14 @@ class Scanner {
 						$data['size'] = $cacheData['size'];
 					}
 				}
-				$this->cache->put($file, $data);
+				$newData = $data;
+				if ($cacheData) {
+					// Only update metadata that has changed
+					$newData = array_diff($data, $cacheData);
+				}
+				if (!empty($newData)) {
+					$this->cache->put($file, $newData);
+				}
 			}
 			return $data;
 		}
-- 
GitLab