Переглянути джерело

Lock files when rolling back version

tags/v8.2RC1
Robin Appelman 8 роки тому
джерело
коміт
943c5069d4
1 змінених файлів з 9 додано та 0 видалено
  1. 9
    0
      apps/files_versions/lib/storage.php

+ 9
- 0
apps/files_versions/lib/storage.php Переглянути файл

@@ -42,6 +42,7 @@ namespace OCA\Files_Versions;

use OCA\Files_Versions\AppInfo\Application;
use OCA\Files_Versions\Command\Expire;
use OCP\Lock\ILockingProvider;

class Storage {

@@ -337,11 +338,19 @@ class Storage {
* @return bool true for success, false otherwise
*/
private static function copyFileContents($view, $path1, $path2) {
/** @var \OC\Files\Storage\Storage $storage1 */
list($storage1, $internalPath1) = $view->resolvePath($path1);
/** @var \OC\Files\Storage\Storage $storage2 */
list($storage2, $internalPath2) = $view->resolvePath($path2);

$view->lockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
$view->lockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);

$result = $storage2->moveFromStorage($storage1, $internalPath1, $internalPath2);

$view->unlockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
$view->unlockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);

return ($result !== false);
}


Завантаження…
Відмінити
Зберегти