From 4ac16001e024c869420a5d9775f3b5bb162311c4 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Fri, 22 Apr 2016 16:07:08 +0200
Subject: [PATCH] add locks in the scanner to prevent multiple scanners running
 on the same files

---
 lib/private/Files/Cache/Scanner.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php
index 8730707f1c2..feefe29d276 100644
--- a/lib/private/Files/Cache/Scanner.php
+++ b/lib/private/Files/Cache/Scanner.php
@@ -296,6 +296,7 @@ class Scanner extends BasicEmitter implements IScanner {
 		}
 		if ($lock) {
 			if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) {
+				$this->storage->acquireLock('scanner::' . $path, ILockingProvider::LOCK_EXCLUSIVE, $this->lockingProvider);
 				$this->storage->acquireLock($path, ILockingProvider::LOCK_SHARED, $this->lockingProvider);
 			}
 		}
@@ -307,6 +308,7 @@ class Scanner extends BasicEmitter implements IScanner {
 		if ($lock) {
 			if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) {
 				$this->storage->releaseLock($path, ILockingProvider::LOCK_SHARED, $this->lockingProvider);
+				$this->storage->releaseLock('scanner::' . $path, ILockingProvider::LOCK_EXCLUSIVE, $this->lockingProvider);
 			}
 		}
 		return $data;
-- 
GitLab