@@ -1672,7 +1672,8 @@ void ProcessDirectoryJob::processFileFinalize(
1672
1672
if (_discoveryData->_syncOptions ._vfs &&
1673
1673
(item->_type == CSyncEnums::ItemTypeFile || item->_type == CSyncEnums::ItemTypeDirectory) &&
1674
1674
item->_instruction == CSyncEnums::CSYNC_INSTRUCTION_NONE &&
1675
- FileSystem::isLnkFile ((_discoveryData->_localDir + path._local ))) {
1675
+ FileSystem::isLnkFile ((_discoveryData->_localDir + path._local )) &&
1676
+ !_discoveryData->_syncOptions ._vfs ->isPlaceHolderInSync (_discoveryData->_localDir + path._local )) {
1676
1677
item->_instruction = CSyncEnums::CSYNC_INSTRUCTION_SYNC;
1677
1678
item->_direction = SyncFileItem::Down;
1678
1679
item->_type = CSyncEnums::ItemTypeVirtualFileDehydration;
@@ -2204,20 +2205,24 @@ void ProcessDirectoryJob::setupDbPinStateActions(SyncJournalFileRecord &record)
2204
2205
{
2205
2206
// Only suffix-vfs uses the db for pin states.
2206
2207
// Other plugins will set localEntry._type according to the file's pin state.
2207
- if (!isVfsWithSuffix ())
2208
+ if (!isVfsWithSuffix ()) {
2208
2209
return ;
2210
+ }
2209
2211
2210
2212
auto pin = _discoveryData->_statedb ->internalPinStates ().rawForPath (record._path );
2211
- if (!pin || *pin == PinState::Inherited)
2213
+ if (!pin || *pin == PinState::Inherited) {
2212
2214
pin = _pinState;
2215
+ }
2213
2216
2214
2217
// OnlineOnly hydrated files want to be dehydrated
2215
- if (record._type == ItemTypeFile && *pin == PinState::OnlineOnly)
2218
+ if (record._type == ItemTypeFile && *pin == PinState::OnlineOnly) {
2216
2219
record._type = ItemTypeVirtualFileDehydration;
2220
+ }
2217
2221
2218
2222
// AlwaysLocal dehydrated files want to be hydrated
2219
- if (record._type == ItemTypeVirtualFile && *pin == PinState::AlwaysLocal)
2223
+ if (record._type == ItemTypeVirtualFile && *pin == PinState::AlwaysLocal) {
2220
2224
record._type = ItemTypeVirtualFileDownload;
2225
+ }
2221
2226
}
2222
2227
2223
2228
}
0 commit comments