Skip to content

Commit

Permalink
Merge pull request #7132 from nextcloud/backport/6717/stable-3.13
Browse files Browse the repository at this point in the history
[stable-3.13] Bugfix/fix vfs folder state when remote move is forbidden
  • Loading branch information
mgallien authored Sep 16, 2024
2 parents c440d7b + e20ef1c commit 9559c83
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/libsync/discovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1670,9 +1670,9 @@ void ProcessDirectoryJob::processFileFinalize(
}

if (_discoveryData->_syncOptions._vfs &&
(item->_type == CSyncEnums::ItemTypeFile || item->_type == CSyncEnums::ItemTypeDirectory) &&
item->_instruction == CSyncEnums::CSYNC_INSTRUCTION_NONE &&
!_discoveryData->_syncOptions._vfs->isPlaceHolderInSync(_discoveryData->_localDir + path._local)) {
(item->_type == CSyncEnums::ItemTypeFile || item->_type == CSyncEnums::ItemTypeDirectory) &&
item->_instruction == CSyncEnums::CSYNC_INSTRUCTION_NONE &&
!_discoveryData->_syncOptions._vfs->isPlaceHolderInSync(_discoveryData->_localDir + path._local)) {
item->_instruction = CSyncEnums::CSYNC_INSTRUCTION_UPDATE_VFS_METADATA;
}

Expand Down
12 changes: 12 additions & 0 deletions src/libsync/propagateremotemove.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,19 @@ void PropagateRemoteMove::slotMoveJobFinished()
qCWarning(lcPropagateRemoteMove)
<< "Could not MOVE file" << filePathOriginal << " to" << filePath
<< " with error:" << _job->errorString() << " and successfully restored it.";

auto restoredItem = *_item;
restoredItem._renameTarget = _item->_originalFile;
const auto result = propagator()->updateMetadata(restoredItem);
if (!result) {
done(SyncFileItem::FatalError, tr("Error updating metadata: %1").arg(result.error()), ErrorCategory::GenericError);
return;
} else if (*result == Vfs::ConvertToPlaceholderResult::Locked) {
done(SyncFileItem::SoftError, tr("The file %1 is currently in use").arg(restoredItem._file), ErrorCategory::GenericError);
return;
}
}

done(status, _job->errorString(), ErrorCategory::GenericError);
return;
}
Expand Down

0 comments on commit 9559c83

Please sign in to comment.