summaryrefslogtreecommitdiff
path: root/Command/Migrate.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/Migrate.hs')
-rw-r--r--Command/Migrate.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/Command/Migrate.hs b/Command/Migrate.hs
index ad3a5efa1..87e4772d1 100644
--- a/Command/Migrate.hs
+++ b/Command/Migrate.hs
@@ -74,9 +74,12 @@ perform file oldkey oldbackend newbackend = go =<< genkey
| knowngoodcontent = finish newkey
| otherwise = stopUnless checkcontent $ finish newkey
checkcontent = Command.Fsck.checkBackend oldbackend oldkey Command.Fsck.KeyLocked $ Just file
- finish newkey = stopUnless (Command.ReKey.linkKey oldkey newkey) $ do
- copyMetaData oldkey newkey
- next $ Command.ReKey.cleanup file oldkey newkey
+ finish newkey = ifM (Command.ReKey.linkKey file oldkey newkey)
+ ( do
+ copyMetaData oldkey newkey
+ next $ Command.ReKey.cleanup file oldkey newkey
+ , error "failed"
+ )
genkey = case maybe Nothing (\fm -> fm oldkey newbackend (Just file)) (fastMigrate oldbackend) of
Just newkey -> return $ Just (newkey, True)
Nothing -> do