summaryrefslogtreecommitdiff
path: root/Annex/Perms.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-03-09 13:33:13 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-03-09 13:33:13 -0400
commit0e37e9778f38bfec13fb8bbd2f5e1e3323179fe4 (patch)
treec795773d7f5e54a2838312362b721107f7049d55 /Annex/Perms.hs
parent11d0943415cc2267776c701b79e5b4e8a13b1792 (diff)
Always try to thaw content, even when annex.crippledfilesystem is set.
Diffstat (limited to 'Annex/Perms.hs')
-rw-r--r--Annex/Perms.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/Annex/Perms.hs b/Annex/Perms.hs
index 159cc328a..3905b7af9 100644
--- a/Annex/Perms.hs
+++ b/Annex/Perms.hs
@@ -92,8 +92,15 @@ freezeContentDir file = unlessM crippledFileSystem $
go _ = liftIO $ preventWrite dir
thawContentDir :: FilePath -> Annex ()
-thawContentDir file = unlessM crippledFileSystem $
- liftIO $ allowWrite $ parentDir file
+thawContentDir file = ifM crippledFileSystem
+ -- Probably cannot change mode on crippled filesystem,
+ -- but if file modes are supported, the directory may be frozen,
+ -- so try to thaw it.
+ ( void $ tryNonAsync go
+ , go
+ )
+ where
+ go = liftIO $ allowWrite $ parentDir file
{- Makes the directory tree to store an annexed file's content,
- with appropriate permissions on each level. -}