QIO_BUFFERSIZE

Bo Lindbergh 2bfjdsla52kztwejndzdstsxl9athp at gmail.com
Mon Dec 7 12:04:52 UTC 2020


Quoth Russ Allbery <eagle at eyrie.org>:
> 
> This is supposed to only be a fallback, and the actual buffer size is
> determined based on st_blksize of the fstat data structure for a file
> (which, at least on the ext3 system I'm currently looking at, is 4KB and
> thus even smaller).  That means that changing this require more than just
> changing that #define, so I'm moderately surprised that changing the
> #define did anything on your system.  That implies to me that either
> st_blksize isn't working on your system or something else weird is going
> on.  What operating system and underlying file system is this?

It works because the buffer_size function never returns a value smaller than
QIO_BUFFERSIZE.

On both Linux and macOS I'm getting st_blksize == 4096 everywhere
except for a 56 GB exFAT partition on an external disk, where it's 131072.
It seems filesystem code writers have repurposed st_blksize to mean
the allocation block size.


/Bo Lindbergh



More information about the inn-workers mailing list