When hardlink fails fallback to full copy

This commit is contained in:
Kovid Goyal 2026-05-17 21:11:35 +05:30
parent ce68e96582
commit 57a94d132f
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C

View file

@ -4599,10 +4599,12 @@ - (void)promised_data_ready:(const char*)path sz:(size_t)sz type:(int)type {
NSURL *srcURL = [NSURL fileURLWithPath:@(path)];
switch (type) {
case 0:
// Create a hard link to path at file_url
// Create a hard link to path at file_url or fallback to full copy
if (![fileManager linkItemAtURL:srcURL toURL:file_url error:&error]) {
[self end_transfer_with_error:error];
return;
if (![fileManager copyItemAtURL:srcURL toURL:file_url error:&error]) {
[self end_transfer_with_error:error];
return;
}
}
break;
case 1: {
@ -4667,8 +4669,10 @@ - (void)promised_data_ready:(const char*)path sz:(size_t)sz type:(int)type {
}
} else {
if (![fileManager linkItemAtURL:itemURL toURL:destURL error:&error]) {
[self end_transfer_with_error:error];
return;
if (![fileManager copyItemAtURL:itemURL toURL:destURL error:&error]) {
[self end_transfer_with_error:error];
return;
}
}
}
}