mirror of
https://github.com/rclone/rclone.git
synced 2025-10-06 05:47:10 +02:00
combine: propagate SlowHash feature
This commit is contained in:
@@ -241,18 +241,22 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (outFs fs
|
|||||||
DirModTimeUpdatesOnWrite: true,
|
DirModTimeUpdatesOnWrite: true,
|
||||||
PartialUploads: true,
|
PartialUploads: true,
|
||||||
}).Fill(ctx, f)
|
}).Fill(ctx, f)
|
||||||
canMove := true
|
canMove, slowHash := true, false
|
||||||
for _, u := range f.upstreams {
|
for _, u := range f.upstreams {
|
||||||
features = features.Mask(ctx, u.f) // Mask all upstream fs
|
features = features.Mask(ctx, u.f) // Mask all upstream fs
|
||||||
if !operations.CanServerSideMove(u.f) {
|
if !operations.CanServerSideMove(u.f) {
|
||||||
canMove = false
|
canMove = false
|
||||||
}
|
}
|
||||||
|
slowHash = slowHash || u.f.Features().SlowHash
|
||||||
}
|
}
|
||||||
// We can move if all remotes support Move or Copy
|
// We can move if all remotes support Move or Copy
|
||||||
if canMove {
|
if canMove {
|
||||||
features.Move = f.Move
|
features.Move = f.Move
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If any of upstreams are SlowHash, propagate it
|
||||||
|
features.SlowHash = slowHash
|
||||||
|
|
||||||
// Enable ListR when upstreams either support ListR or is local
|
// Enable ListR when upstreams either support ListR or is local
|
||||||
// But not when all upstreams are local
|
// But not when all upstreams are local
|
||||||
if features.ListR == nil {
|
if features.ListR == nil {
|
||||||
|
Reference in New Issue
Block a user