Hello,
Does the information reported on a macFUSE volume by diskutil come from my statfs() implementation?
I have a mounted volume whose Allocation Size appears wrong:
```
$ diskutil info /dev/disk4
<snip>
Disk Size: 5.4 GB (5367775232 Bytes) (exactly 10483936 512-Byte-Units)
Device Block Size: 512 Bytes
Volume Total Space: 8.6 GB
(8588361728 Bytes) (exactly 16774144 512-Byte-Units)
Volume Used Space: 5.0 MB (4980736 Bytes) (exactly 9728 512-Byte-Units) (0.1%)
Volume Free Space: 8.6 GB
(8583380992 Bytes) (exactly 16764416 512-Byte-Units) (99.9%)
Allocation Block Size: 131072 Bytes
```
This results in the wrong total and free size of the volume, which should only be 5.4GB. Assuming this information comes from the struct statvfs *stbuf that I populate in my implementation of statfs(), I dumped the values I put there:
```
FuseHFS_statfs(): stbuf->f_bsize: 81920
FuseHFS_statfs(): stbuf->f_frsize: 81920
FuseHFS_statfs(): stbuf->f_blocks: 65524
FuseHFS_statfs(): stbuf->f_bfree: 65486
```
So I can see that diskutil is calculating the 8.6 GB as the correct number of blocks (65524) times its wrong block size (131072). Somehow my 0x14000 block size became 0x20000 between the time I returned it and when diskutil reported this, unless there's somewhere else I should be looking. AFAICT this only happens for volumes over 2GB. It's entirely possible this is my own bug somewhere, but there is nowhere else that I touch any struct statvfs. Am I thinking about this correctly that the Allocation Size should be the stbuf->f_frsize or stbuf->f_bsize that I return, or is there somewhere else this information may come from?
Thanks,
Joel