mirror of
https://github.com/nextcloud/server.git
synced 2026-05-19 08:25:56 -04:00
add locks in the scanner to prevent multiple scanners running on the same files
This commit is contained in:
parent
5925ab99f8
commit
51f5edd749
1 changed files with 2 additions and 0 deletions
2
lib/private/files/cache/scanner.php
vendored
2
lib/private/files/cache/scanner.php
vendored
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue