diff options
Diffstat (limited to 'Assistant/Threads/TransferScanner.hs')
-rw-r--r-- | Assistant/Threads/TransferScanner.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Assistant/Threads/TransferScanner.hs b/Assistant/Threads/TransferScanner.hs index 5436c2ca1..4b6a90cd9 100644 --- a/Assistant/Threads/TransferScanner.hs +++ b/Assistant/Threads/TransferScanner.hs @@ -154,8 +154,9 @@ expensiveScan urlrenderer rs = batch <~> do enqueue f (r, t) = queueTransferWhenSmall "expensive scan found missing object" - (Just f) t r + (AssociatedFile (Just f)) t r findtransfers f unwanted key = do + let af = AssociatedFile (Just f) {- The syncable remotes may have changed since this - scan began. -} syncrs <- syncDataRemotes <$> getDaemonStatus @@ -163,14 +164,14 @@ expensiveScan urlrenderer rs = batch <~> do present <- liftAnnex $ inAnnex key liftAnnex $ handleDropsFrom locs syncrs "expensive scan found too many copies of object" - present key (Just f) [] callCommandAction + present key af [] callCommandAction liftAnnex $ do let slocs = S.fromList locs let use a = return $ mapMaybe (a key slocs) syncrs ts <- if present - then filterM (wantSend True (Just key) (Just f) . Remote.uuid . fst) + then filterM (wantSend True (Just key) af . Remote.uuid . fst) =<< use (genTransfer Upload False) - else ifM (wantGet True (Just key) (Just f)) + else ifM (wantGet True (Just key) af) ( use (genTransfer Download True) , return [] ) let unwanted' = S.difference unwanted slocs return (unwanted', ts) |