From 99ea159fce3fb98080b5e39770fc22b79d58d50f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 14 Feb 2013 16:54:36 -0400 Subject: add: Improved detection of files that are modified while being added. In indirect mode, now checks the inode cache to detect changes to a file. Note that a file can still be changed if a process has it open for write, after landing in the annex. In direct mode, some checking of the inode cache was done before, but from a much later point, so fewer modifications could be detected. Now it's as good as indirect mode. On crippled filesystems, no lock down is done before starting to add a file, so checking the inode cache is the only protection we have. --- Command/AddUrl.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Command/AddUrl.hs') diff --git a/Command/AddUrl.hs b/Command/AddUrl.hs index 9197d6844..41a947db8 100644 --- a/Command/AddUrl.hs +++ b/Command/AddUrl.hs @@ -75,7 +75,11 @@ download url file = do liftIO $ createDirectoryIfMissing True (parentDir tmp) stopUnless (downloadUrl [url] tmp) $ do backend <- chooseBackend file - let source = KeySource { keyFilename = file, contentLocation = tmp } + let source = KeySource + { keyFilename = file + , contentLocation = tmp + , inodeCache = Nothing + } k <- genKey source backend case k of Nothing -> stop -- cgit v1.2.3