changes for v6 broke fsck in direct mode
authorJoey Hess <joeyh@joeyh.name>
Tue, 15 Dec 2015 18:27:20 +0000 (14:27 -0400)
committerJoey Hess <joeyh@joeyh.name>
Tue, 15 Dec 2015 18:27:20 +0000 (14:27 -0400)
Command/Fsck.hs

index 74e83670c1a77560b6975951f6c49d7578a4bb74..42bc93074939be1453effb655d10b6910d008ade 100644 (file)
@@ -299,15 +299,12 @@ verifyDirectMode key file = do
  -}
 checkKeySize :: Key -> KeyStatus -> Annex Bool
 checkKeySize _ KeyUnlocked = return True
-checkKeySize key KeyLocked = ifM isDirect
-       ( return True
-       , do
-               file <- calcRepo $ gitAnnexLocation key
-               ifM (liftIO $ doesFileExist file)
-                       ( checkKeySizeOr badContent key file
-                       , return True
-                       )
-       )
+checkKeySize key KeyLocked = do
+       file <- calcRepo $ gitAnnexLocation key
+       ifM (liftIO $ doesFileExist file)
+               ( checkKeySizeOr badContent key file
+               , return True
+               )
 
 checkKeySizeRemote :: Key -> Remote -> Maybe FilePath -> Annex Bool
 checkKeySizeRemote _ _ Nothing = return True
@@ -606,8 +603,11 @@ isKeyUnlocked KeyUnlocked = True
 isKeyUnlocked KeyLocked = False
 
 getKeyStatus :: Key -> Annex KeyStatus
-getKeyStatus key = do
-       obj <- calcRepo $ gitAnnexLocation key
-       unlocked <- ((> 1) . linkCount <$> liftIO (getFileStatus obj))
-               <&&> (not . null <$> Database.Keys.getAssociatedFiles key)
-       return $ if unlocked then KeyUnlocked else KeyLocked
+getKeyStatus key = ifM isDirect
+       ( return KeyUnlocked
+       , do
+               obj <- calcRepo $ gitAnnexLocation key
+               unlocked <- ((> 1) . linkCount <$> liftIO (getFileStatus obj))
+                       <&&> (not . null <$> Database.Keys.getAssociatedFiles key)
+               return $ if unlocked then KeyUnlocked else KeyLocked
+       )