New: Support reflink on xfs

pull/2471/head
ta264 3 years ago
parent 85f369b92f
commit 859ca2cebc

@ -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))
{

Loading…
Cancel
Save