From d5a3604d3952232f5e06989a56f12b86f48df868 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Mon, 12 Nov 2018 12:24:08 +0100 Subject: [PATCH] vfs: Reenable local metadata updating of vfs files --- src/libsync/syncengine.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index e48235567..e2fa5adff 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -331,9 +331,20 @@ void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item) if (rec._checksumHeader.isEmpty()) rec._checksumHeader = prev._checksumHeader; rec._serverHasIgnoredFiles |= prev._serverHasIgnoredFiles; - _journal->setFileRecord(rec); - // ### Update vfs metadata with Vfs::updateMetadata() + // Update on-disk virtual file metadata + if (item->_type == ItemTypeVirtualFile && _syncOptions._vfs) { + QString error; + if (!_syncOptions._vfs->updateMetadata(filePath, item->_modtime, item->_size, item->_fileId, &error)) { + item->_instruction = CSYNC_INSTRUCTION_ERROR; + item->_status = SyncFileItem::NormalError; + item->_errorString = tr("Could not update virtual file metadata: %1").arg(error); + return; + } + } + + // Updating the db happens on success + _journal->setFileRecord(rec); // This might have changed the shared flag, so we must notify SyncFileStatusTracker for example emit itemCompleted(item); -- 2.30.2