diff options
author | Robin Appelman <icewind@owncloud.com> | 2015-02-06 15:20:53 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2015-02-06 15:20:53 +0100 |
commit | 6c00521e8b053272f1314c0727f0278ffde90ffe (patch) | |
tree | 3dae9180473bc96a60c87d469fa62615f3f16166 /lib | |
parent | 80e38b84dccde44c40109e9721fac00984f43ef7 (diff) | |
download | nextcloud-server-6c00521e8b053272f1314c0727f0278ffde90ffe.tar.gz nextcloud-server-6c00521e8b053272f1314c0727f0278ffde90ffe.zip |
Use transactions when renaming directory contents
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/files/cache/cache.php | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php index 5438bdad5cb..cad4c8a40b9 100644 --- a/lib/private/files/cache/cache.php +++ b/lib/private/files/cache/cache.php @@ -408,12 +408,14 @@ class Cache { $result = \OC_DB::executeAudited($sql, array($this->getNumericStorageId(), $source . '/%')); $childEntries = $result->fetchAll(); $sourceLength = strlen($source); + \OC_DB::beginTransaction(); $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?'); foreach ($childEntries as $child) { $targetPath = $target . substr($child['path'], $sourceLength); \OC_DB::executeAudited($query, array($targetPath, md5($targetPath), $child['fileid'])); } + \OC_DB::commit(); } $sql = 'UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `name` = ?, `parent` =? WHERE `fileid` = ?'; |