From 68e2687661cdc83197e78fd56a10803890401159 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 25 Oct 2010 21:15:29 -0400 Subject: [PATCH] short-circuit as soon as enough remotes are verified to have a file --- Backend/File.hs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Backend/File.hs b/Backend/File.hs index 4b7d7917c0..4273ba36be 100644 --- a/Backend/File.hs +++ b/Backend/File.hs @@ -111,11 +111,14 @@ checkRemoveKey key = do then return True else notEnoughCopies need have bad findcopies need have (r:rs) bad = do - haskey <- Remotes.inAnnex r key - case (haskey) of - Right True -> findcopies need (have+1) rs bad - Right False -> findcopies need have rs bad - Left _ -> findcopies need have rs (r:bad) + if (have >= need) + then return True + else do + haskey <- Remotes.inAnnex r key + case (haskey) of + Right True -> findcopies need (have+1) rs bad + Right False -> findcopies need have rs bad + Left _ -> findcopies need have rs (r:bad) notEnoughCopies need have bad = do unsafe showLongNote $