diff --git a/src/NzbDrone.Common/Disk/DiskTransferService.cs b/src/NzbDrone.Common/Disk/DiskTransferService.cs index 3a3a7771e..348ea958d 100644 --- a/src/NzbDrone.Common/Disk/DiskTransferService.cs +++ b/src/NzbDrone.Common/Disk/DiskTransferService.cs @@ -21,6 +21,8 @@ namespace NzbDrone.Common.Disk private readonly IDiskProvider _diskProvider; private readonly Logger _logger; + private static readonly string[] _reflinkFilesystems = { "btrfs", "xfs" }; + public DiskTransferService(IDiskProvider diskProvider, Logger logger) { _diskProvider = diskProvider; @@ -341,11 +343,11 @@ namespace NzbDrone.Common.Disk var targetDriveFormat = targetMount?.DriveFormat ?? string.Empty; var isCifs = targetDriveFormat == "cifs"; - var isBtrfs = sourceDriveFormat == "btrfs" && targetDriveFormat == "btrfs"; + var tryReflink = sourceDriveFormat == targetDriveFormat && _reflinkFilesystems.Contains(sourceDriveFormat); if (mode.HasFlag(TransferMode.Copy)) { - if (isBtrfs) + if (tryReflink) { if (_diskProvider.TryCreateRefLink(sourcePath, targetPath)) { @@ -359,7 +361,7 @@ namespace NzbDrone.Common.Disk if (mode.HasFlag(TransferMode.Move)) { - if (isBtrfs) + if (tryReflink) { if (isSameMount && _diskProvider.TryRenameFile(sourcePath, targetPath)) {