ZFS: statfs and recordsize problem

Alexander Zagrebin alexz at visp.ru
Thu Feb 18 12:39:29 UTC 2010


I have noticed, that statfs called for ZFS file systems,
returns the value of FS's recordsize property in both f_bsize and
f_iosize.

It's a problem for some software.
For example, squid uses block size of cache's file system to calculate
the space occupied by file.
So by default it considers that any small file uses 128KB of a cache
(when default value of recordsize is used), though really this file
may use 512B only.
This miscalculation leads to unreasonable cleaning of a cache.

IMHO the behavior of statfs have to be changed, as ZFS uses variable
(up to recordsize) block sizes.
It must return 512 as f_bsize and recordsize as f_iosize.
One of possible solutions is the attached patch.
Could somebody look it?

-- 
Alexander Zagrebin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-zfs_vfsops.c
Type: application/octet-stream
Size: 1122 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20100218/22cd9bc0/patch-zfs_vfsops.obj


More information about the freebsd-current mailing list