Fix bogus failure of fsck --fast.

This commit is contained in:
Joey Hess 2015-04-27 17:40:21 -04:00
parent 69dcbe1cf3
commit cfbeb1e7b7
4 changed files with 16 additions and 10 deletions

View file

@ -112,14 +112,15 @@ performRemote key file backend numcopies remote =
dispatch (Left err) = do
showNote err
return False
dispatch (Right True) = withtmp $ \tmpfile ->
ifM (getfile tmpfile)
( go True (Just tmpfile)
, do
dispatch (Right True) = withtmp $ \tmpfile -> do
r <- getfile tmpfile
case r of
Nothing -> go True Nothing
Just True -> go True (Just tmpfile)
Just False -> do
warning "failed to download file from remote"
void $ go True Nothing
return False
)
dispatch (Right False) = go False Nothing
go present localcopy = check
[ verifyLocationLogRemote key file remote present
@ -137,13 +138,14 @@ performRemote key file backend numcopies remote =
cleanup `after` a tmp
getfile tmp = ifM (checkDiskSpace (Just tmp) key 0)
( ifM (Remote.retrieveKeyFileCheap remote key tmp)
( return True
( return (Just True)
, ifM (Annex.getState Annex.fast)
( return False
, Remote.retrieveKeyFile remote key Nothing tmp dummymeter
( return Nothing
, Just <$>
Remote.retrieveKeyFile remote key Nothing tmp dummymeter
)
)
, return False
, return (Just False)
)
dummymeter _ = noop

View file

@ -199,7 +199,7 @@ specialRemote' cfg c preparestorer prepareretriever prepareremover preparecheckp
readBytes $ \encb ->
storer (enck k) (ByteContent encb) p
-- call retrieve-r to get chunks; decrypt them; stream to dest file
-- call retriever to get chunks; decrypt them; stream to dest file
retrieveKeyFileGen k dest p enc =
safely $ prepareretriever k $ safely . go
where

1
debian/changelog vendored
View file

@ -7,6 +7,7 @@ git-annex (5.20150421) UNRELEASED; urgency=medium
(endpoint, port, storage class)
* S3: git annex enableremote will not create a bucket name, which
failed since the bucket already exists.
* Fix bogus failure of fsck --fast.
-- Joey Hess <id@joeyh.name> Tue, 21 Apr 2015 15:54:10 -0400

View file

@ -25,3 +25,6 @@ failed
while ``git annex fsck -f S3remote`` works fine. But, to check for the presence of a file (which is my understanding of what ``--fast`` is for here), it shouldn't be necessary to download the file.
> [[fixed|done]]; it was not supposed to fail at all in this case, and
> won't anymore. --[[Joey]]