Merge pull request #23995 from nextcloud/backport/23741/stable20

[stable20] Unlock when promoting to exclusive lock fails
This commit is contained in:
Morris Jobke 2020-11-10 10:16:34 +01:00 committed by GitHub
commit bf6aa03eb3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 1 deletions

View File

@ -665,7 +665,13 @@ class View {
return false; return false;
} }
try {
$this->changeLock($path, ILockingProvider::LOCK_EXCLUSIVE); $this->changeLock($path, ILockingProvider::LOCK_EXCLUSIVE);
} catch (\Exception $e) {
// Release the shared lock before throwing.
$this->unlockFile($path, ILockingProvider::LOCK_SHARED);
throw $e;
}
/** @var \OC\Files\Storage\Storage $storage */ /** @var \OC\Files\Storage\Storage $storage */
[$storage, $internalPath] = $this->resolvePath($path); [$storage, $internalPath] = $this->resolvePath($path);