On Thu, Apr 26, 2012 at 02:32:36PM +0100, David Howells wrote:
Andreas Dilger adilger@dilger.ca wrote:
st_blksize may be variable for a distributed filesystem,
It can be variable for local filesystems, too. XFS will vary the block size based on the configuration of the inode. e.g. if there is an extent allocation size hint on the inode, or it's on the realtime device, and so on. There is no guarantee that from file to file that it is constant.
I wonder if there's a way to make this explicit - or is it something that if the bit isn't set, you can't use the value in st_blksize. I wonder if this value always has to be non-zero to make sure existing stat() doesn't explode.
More likely it probably needs to be non-zero to prevent applications doing division by block size from exploding... ;)
Cheers,
Dave.