patch to fix disk usage numbers on FreeBSD

Doug Porter dsp at
Fri Dec 8 16:38:58 UTC 2006

The current version of MogileFS doubles all the disk space numbers on
FreeBSD due to FreeBSD's df working differently than GNU coreutils df.
If the -P option follows -k with FreeBSD df the blocksize will be
512 bytes.  The following patch remedies this problem and seems to
produce the correct results on both FreeBSD and Linux.

Index: server/mogstored
--- server/mogstored	(revision 518)
+++ server/mogstored	(working copy)
@@ -259,7 +259,7 @@
         my ($osdevnum) = stat("$path/$devnum");
         $devnum_to_device{$devnum} = $osdevnum_to_device{$osdevnum};
-        my $rval = `df -k -l -P $path/$devnum`;
+        my $rval = `df -P -l -k $path/$devnum`;
         foreach my $l (split /\r?\n/, $rval) {
             next unless $l =~ /^(.+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(.+)\s+(.+)$/;
             my ($dev, $total, $used, $avail, $useper, $disk) = ($1, $2, $3, $4, $5, $6);

Doug Porter <dsp at>

More information about the mogilefs mailing list