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