From 73c2b97d7d5b26c43aca2432776ea1dbe10be73d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 23 Dec 2014 11:52:23 -0400 Subject: Work around statfs() overflow on some XFS systems. statfs(".", 0xffa8ad50) = -1 EOVERFLOW (Value too large for defined data type) Ref <20141222221621.GO7251@onerussian.com> --- Utility/Path.hs | 5 ++++- debian/changelog | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Utility/Path.hs b/Utility/Path.hs index d21452efd..c3e893d16 100644 --- a/Utility/Path.hs +++ b/Utility/Path.hs @@ -21,6 +21,7 @@ import Control.Applicative import qualified System.FilePath.Posix as Posix #else import System.Posix.Files +import Utility.Exception #endif import qualified "MissingH" System.Path as MissingH @@ -255,7 +256,9 @@ fileNameLengthLimit :: FilePath -> IO Int fileNameLengthLimit _ = return 255 #else fileNameLengthLimit dir = do - l <- fromIntegral <$> getPathVar dir FileNameLimit + -- getPathVar can fail due to statfs(2) overflow + l <- catchDefaultIO 0 $ + fromIntegral <$> getPathVar dir FileNameLimit if l <= 0 then return 255 else return $ minimum [l, 255] diff --git a/debian/changelog b/debian/changelog index 63b2adf36..6c1bad91b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ git-annex (5.20141220) UNRELEASED; urgency=medium * vicfg: Avoid crashing on badly encoded config data. + * Work around statfs() overflow on some XFS systems. -- Joey Hess Mon, 22 Dec 2014 15:16:38 -0400 -- cgit v1.2.3