diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php index 63045e79a826f..a9f88ec9ce109 100644 --- a/apps/files/lib/Service/OwnershipTransferService.php +++ b/apps/files/lib/Service/OwnershipTransferService.php @@ -264,7 +264,9 @@ protected function analyse( } $size = $sourceFileInfo->getSize(false); $freeSpace = $view->free_space($destinationUid . '/files/'); - if ($size > $freeSpace && $freeSpace !== FileInfo::SPACE_UNKNOWN) { + // SPACE_UNKNOWN and SPACE_UNLIMITED mean there is no finite limit to compare against. + // SPACE_NOT_COMPUTED means a quota is set but its headroom is unknown, so it still rejects. + if ($freeSpace !== FileInfo::SPACE_UNKNOWN && $freeSpace !== FileInfo::SPACE_UNLIMITED && $size > $freeSpace) { throw new TransferOwnershipException('Target user does not have enough free space available.', 1); }