]> source.dussan.org Git - nextcloud-server.git/commitdiff
Only update metadata that has changed
authorMichael Gapczynski <mtgap@owncloud.com>
Wed, 29 May 2013 14:19:03 +0000 (10:19 -0400)
committerMichael Gapczynski <mtgap@owncloud.com>
Wed, 29 May 2013 17:25:04 +0000 (13:25 -0400)
lib/files/cache/scanner.php

index 0b1947f17cac7c121d89bb2274b1d6076084a5b9..f58cd492c8c94d96940e99e963e1531559800cce 100644 (file)
@@ -77,7 +77,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'];
@@ -88,7 +88,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;
                }