From: Reiko Asakura Date: Sun, 25 Sep 2022 19:21:24 +0000 (-0400) Subject: Run freeze and thaw hooks on crippled filesystems X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~69^2~46 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1d48153bb8bc5ca865b9bc156933b0f11acfb530;p=git-annex.git Run freeze and thaw hooks on crippled filesystems The user sets these hooks deliberately so they should always be run. For example this allows hooks to be used to manage file permissions on NTFS volumes in WSL1. --- diff --git a/Annex/Perms.hs b/Annex/Perms.hs index 6681da7e07..69e344452a 100644 --- a/Annex/Perms.hs +++ b/Annex/Perms.hs @@ -154,7 +154,7 @@ createWorkTreeDirectory dir = do - that happens with write permissions. -} freezeContent :: RawFilePath -> Annex () -freezeContent file = unlessM crippledFileSystem $ +freezeContent file = withShared $ \sr -> freezeContent' sr file freezeContent' :: SharedRepository -> RawFilePath -> Annex () @@ -163,7 +163,7 @@ freezeContent' sr file = freezeContent'' sr file =<< getVersion freezeContent'' :: SharedRepository -> RawFilePath -> Maybe RepoVersion -> Annex () freezeContent'' sr file rv = do fastDebug "Annex.Perms" ("freezing content " ++ fromRawFilePath file) - go sr + unlessM crippledFileSystem $ go sr freezeHook file where go GroupShared = if versionNeedsWritableContentFiles rv @@ -253,7 +253,7 @@ thawContent' sr file = do - permissions. -} thawPerms :: Annex () -> Annex () -> Annex () thawPerms a hook = ifM crippledFileSystem - ( void (tryNonAsync a) + ( hook >> void (tryNonAsync a) , hook >> a ) @@ -263,9 +263,9 @@ thawPerms a hook = ifM crippledFileSystem - file. -} freezeContentDir :: RawFilePath -> Annex () -freezeContentDir file = unlessM crippledFileSystem $ do +freezeContentDir file = do fastDebug "Annex.Perms" ("freezing content directory " ++ fromRawFilePath dir) - withShared go + unlessM crippledFileSystem $ withShared go freezeHook dir where dir = parentDir file @@ -287,9 +287,9 @@ createContentDir dest = do unlessM (liftIO $ R.doesPathExist dir) $ createAnnexDirectory dir -- might have already existed with restricted perms - unlessM crippledFileSystem $ do + do thawHook dir - liftIO $ allowWrite dir + unlessM crippledFileSystem $ liftIO $ allowWrite dir where dir = parentDir dest