fix a place where the inode cache could potentially have gotten stale
When git-annex lock repopulates the object file by copying an associated file that still has its content, it negected to update the inode cache. I was not able to actually get this code to successfully repopulate the object file; the associated file gets replaced with a dangling pointer before unlock is able to do that. (By what I'm not sure.. reconcileStaged?) Which might be itself a bug, but anyway this makes me doubtful that this was really leading to a stale inode cache. Still, in case there is some situation in which it does work, fixed it to update the inode cache.
This commit is contained in:
parent
6bbd606390
commit
4637592325
1 changed files with 4 additions and 2 deletions
|
@ -91,8 +91,10 @@ perform file key = do
|
|||
liftIO $ removeWhenExistsWith R.removeLink obj
|
||||
case mfile of
|
||||
Just unmodified ->
|
||||
unlessM (checkedCopyFile key unmodified obj Nothing)
|
||||
lostcontent
|
||||
ifM (checkedCopyFile key unmodified obj Nothing)
|
||||
( Database.Keys.storeInodeCaches key [obj]
|
||||
, lostcontent
|
||||
)
|
||||
Nothing -> lostcontent
|
||||
|
||||
lostcontent = logStatus key InfoMissing
|
||||
|
|
Loading…
Reference in a new issue