statfs b_avail & b_free different if the filesystem is mounted readonly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We had a question[1] posed by a libguestfs user who wondered why the
output of ‘virt-df’ and ‘df’ differ for an XFS filesystem.  After
looking into the details it turns out that the statfs(2) system call
gives slightly different answers if the filesystem is mounted
read-write vs read-only.

  ><rescue> mount /dev/sda1 /sysroot
  ><rescue> stat -f /sysroot
    File: "/sysroot"
      ID: 80100000000 Namelen: 255     Type: xfs
  Block size: 4096       Fundamental block size: 4096
  Blocks: Total: 24713      Free: 23347      Available: 23347
  Inodes: Total: 51136      Free: 51133

vs:

  ><rescue> mount -o ro /dev/sda1 /sysroot
  ><rescue> stat -f /sysroot
    File: "/sysroot"
      ID: 80100000000 Namelen: 255     Type: xfs
  Block size: 4096       Fundamental block size: 4096
  Blocks: Total: 24713      Free: 24653      Available: 24653
  Inodes: Total: 51136      Free: 51133

‘virt-df’ uses ‘-o ro’ and in the ‘df’ case the user had the
filesystem mounted read-write, hence different results.

I looked into the kernel code and it's all pretty complicated.  I
couldn't see exactly where this difference could come from.

My questions are: Is there a reason for this difference, and is one of
the answers more correct than the other?

Rich.

[1] https://www.redhat.com/archives/libguestfs/2018-January/msg00002.html

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux