quotactl(2) units of reported sizes on ZFS
- Reply: Dag-Erling_Smørgrav : "Re: quotactl(2) units of reported sizes on ZFS"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 03 Jun 2024 16:26:02 UTC
Hello, list. The call quotactl(2) reports quota sizes in units of 'blocks', but how big is a block? Traditionally, of course, the answer is 512B, and when I use quotactl(2) to Q_GETQUOTA for a user, with reference to a ZFS filesystem, the results match the output of `zfs userspace` if I assume that block size. But I can't see that written down anywhere, neither in the quotactl manpage, nor in /usr/include/ufs/ufs/quota.h. Also, I wouldn't be at all surprised if quotas were reported in different 'block sizes', on differently-configured zpools (for example with a different ashift value), so the assumption that 'block=512B' could be right on one machine/filesystem but wrong on another. So how big is 'a block', when interpreting the result of quotactl(2)? I've found this question weirdly hard to answer, asking on two of the forums and another freebsd.org list. I'm aware of libzfs, but I can't find any documentation on that, either. I can see libzfs in the ZFS repo [1], but there doesn't seem to be a manpage covering the library, nor obviously relevant comments within /usr/include/libzfs.h. I can see a mention of zfs_prop_get_userquota in that header file (I should probably be using that, rather than quotactl()), but... no documentation. (There is the separate anomaly that the quotactl(2) manpage says that it is only supported on UFS, but it manifestly also works without error on a ZFS filesystem.) Can anyone shed some light? Best wishes, Norman [1] https://github.com/openzfs/zfs/tree/master -- Norman Gray : https://nxg.me.uk