On 08/08/2014 07:07 AM, Ján Tomko wrote: > On 08/05/2014 04:38 PM, John Ferlan wrote: >> https://bugzilla.redhat.com/show_bug.cgi?id=1077068 >> >> Check for the NFS FS type being true for a "local" stat of the file >> to force usage of the 'st_size' value rather than calculating the size >> using the 'st_blocks' and 'st_blksize'. As described in the stat(2) >> man page: >> >> "Use of the st_blocks and st_blksize fields may be less portable." >> >> experimentation shows a 10M file could get the following output from stat: >> >> st_size=10485760 st_blocks=88 st_blksize=1048576 >> >> resulting in a "44 KiB" value being displayed as the allocation value. >> While this value does match the "du -s" value of the same file, the >> "du -b" value shows the "st_size" field. Similarly a long listing of the >> file shows the 10M size. > > Capacity should be the apparent size (what du -b shows, or st_size), while > allocation should track the on-disk usage (du, st_blocks * 512). > > It looks to me that the values are correct, it's just that posix_fallocate > does neither work nor fail on NFS. > > Jan > Testing seems to indicate that posix_fallocate() either doesn't work as expected on the target or using the target.path is incorrect... Before posix_fallocate stat st_blocks=0 st_blksize=1048576 st_size=10485760 lseek end=10485760 posix_fallocate of 10485760 bytes on /home/nfs_pool/target/test-vol1 After posix_fallocate stat st_blocks=88 st_blksize=1048576 st_size=10485760 lseek end=10485760 Hmm... would going at the target be correct in this instance? Same test but use the source path: Before posix_fallocate stat st_blocks=0 st_blksize=4096 st_size=10485760 lseek end=10485760 posix_fallocate of 10485760 bytes on /home/nfs_pool/nfs-export/test-vol1 After posix_fallocate stat st_blocks=20480 st_blksize=4096 st_size=10485760 lseek end=10485760 ... hmm.... 20480 * 512 = 10485760 # df ... localhost:/home/nfs_pool/nfs-export 140979200 35521536 98273280 27% /home/nfs_pool/target # John -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list