From 644755df663e8dc295e92700da208a28c13cbaab Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 8 Sep 2014 01:34:03 +0200 Subject: Use bigger transactions when doing explicit file system scans --- lib/private/files/utils/scanner.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'lib/private/files/utils') diff --git a/lib/private/files/utils/scanner.php b/lib/private/files/utils/scanner.php index c2fabf51946..c7da4505af5 100644 --- a/lib/private/files/utils/scanner.php +++ b/lib/private/files/utils/scanner.php @@ -34,12 +34,19 @@ class Scanner extends PublicEmitter { */ protected $propagator; + /** + * @var \OCP\IDBConnection + */ + protected $db; + /** * @param string $user + * @param \OCP\IDBConnection $db */ - public function __construct($user) { + public function __construct($user, $db) { $this->user = $user; $this->propagator = new ChangePropagator(new View('')); + $this->db = $db; } /** @@ -121,8 +128,11 @@ class Scanner extends PublicEmitter { throw new ForbiddenException(); } $scanner = $storage->getScanner(); + $scanner->useTransactions(false); $this->attachListener($mount); + $this->db->beginTransaction(); $scanner->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE); + $this->db->commit(); } $this->propagator->propagateChanges(time()); } -- cgit v1.2.3