Add a sanity check for bad StatFS results.

git-annex FTBFS on s390, mips, powerpc, sparc. That StatFS code is failing
on all of them. At least on s390, the failure appears as:

Just (FileSystemStats {fsStatBlockSize = 4096, fsStatBlockCount = 0,
fsStatByteCount = 0, fsStatBytesFree = 0, fsStatBytesAvailable = 0,
fsStatBytesUsed = 0})

While I don't understand why this is happening, or how to fix it,
bandaid over it by checking for obviously bad values and returning Nothing.
That disables disk free space checking, but at least git-annex will work.

Upstream bug: http://code.google.com/p/xmobar/issues/detail?id=70
This commit is contained in:
Joey Hess 2012-01-14 17:17:20 -04:00
parent a3d97e0c85
commit 0eed604446
2 changed files with 10 additions and 1 deletions

View file

@ -114,7 +114,7 @@ getFileSystemStats path =
bfree <- (#peek struct statfs, f_bfree) vfs
bavail <- (#peek struct statfs, f_bavail) vfs
let bpb = toI bsize
return $ Just FileSystemStats
let stats = FileSystemStats
{ fsStatBlockSize = bpb
, fsStatBlockCount = toI bcount
, fsStatByteCount = toI bcount * bpb
@ -122,4 +122,7 @@ getFileSystemStats path =
, fsStatBytesAvailable = toI bavail * bpb
, fsStatBytesUsed = toI (bcount - bfree) * bpb
}
if fsStatBlockCount stats == 0 || fsStatBlockSize stats == 0
then return Nothing
else return $ Just stats
#endif

6
debian/changelog vendored
View file

@ -1,3 +1,9 @@
git-annex (3.20120114) UNRELEASED; urgency=low
* Add a sanity check for bad StatFS results.
-- Joey Hess <joeyh@debian.org> Sat, 14 Jan 2012 17:12:04 -0400
git-annex (3.20120113) unstable; urgency=low
* log: Add --gource mode, which generates output usable by gource.