From 0dffc94132f8da176f86ec1210e9d39923dbcdf5 Mon Sep 17 00:00:00 2001 From: adreed-msft <49764384+adreed-msft@users.noreply.github.com> Date: Mon, 24 Jul 2023 22:30:30 -0700 Subject: [PATCH] Support follow-symlinks SMB properties (#2258) --- cmd/copy.go | 11 ----------- cmd/sync.go | 3 --- 2 files changed, 14 deletions(-) diff --git a/cmd/copy.go b/cmd/copy.go index 1ddce689e..135294fce 100644 --- a/cmd/copy.go +++ b/cmd/copy.go @@ -676,10 +676,6 @@ func (raw rawCopyCmdArgs) cook() (CookedCopyCmdArgs, error) { cooked.IncludeDirectoryStubs = raw.includeDirectoryStubs - if err = crossValidateSymlinksAndPermissions(cooked.SymlinkHandling, cooked.preservePermissions.IsTruthy()); err != nil { - return cooked, err - } - cooked.backupMode = raw.backupMode if err = validateBackupMode(cooked.backupMode, cooked.FromTo); err != nil { return cooked, err @@ -987,13 +983,6 @@ func validateSymlinkHandlingMode(symlinkHandling common.SymlinkHandlingType, fro return nil // other older symlink handling modes can work on all OSes } -func crossValidateSymlinksAndPermissions(symlinkHandling common.SymlinkHandlingType, preservePermissions bool) error { - if symlinkHandling != common.ESymlinkHandlingType.Skip() && preservePermissions { - return errors.New("cannot handle symlinks when preserving permissions (since the correct permission inheritance behaviour for symlink targets is undefined)") - } - return nil -} - func validateBackupMode(backupMode bool, fromTo common.FromTo) error { if !backupMode { return nil diff --git a/cmd/sync.go b/cmd/sync.go index dfd44cad3..84b340720 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -202,9 +202,6 @@ func (raw *rawSyncCmdArgs) cook() (cookedSyncCmdArgs, error) { if err = cooked.symlinkHandling.Determine(raw.followSymlinks, raw.preserveSymlinks); err != nil { return cooked, err } - if err = crossValidateSymlinksAndPermissions(cooked.symlinkHandling, true /* replace with real value when available */); err != nil { - return cooked, err - } cooked.recursive = raw.recursive cooked.forceIfReadOnly = raw.forceIfReadOnly if err = validateForceIfReadOnly(cooked.forceIfReadOnly, cooked.fromTo); err != nil {