On 7/14/20 8:53 PM, Darrick J. Wong wrote: > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > Currently, xfs quotas have the ability to send netlink warnings when a > user exceeds the limits. They also have all the support code necessary > to convert softlimit warnings into failures if the number of warnings > exceeds a limit set by the administrator. Unfortunately, we never > actually increase the warning counter, so this never actually happens. > Make it so we actually do something useful with the warning counts. > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> Sooo I got a bug report that this essentially breaks the timer for soft quota, because we now (and quite rapidly) hit the default 5-warning limit well before we hit any reasonable timer that may have been set, and disallow more space usage. And those warnings rack up in somewhat unexpected (to me, anyway) ways. With a default max warning count of 5, I go over soft quota exactly once, touch/create 2 more empty inodes, and I'm done: # rm -f /mnt/xfs/* # xfs_quota -x -c 'report -h' /mnt/xfs User quota on /mnt/xfs (/dev/loop1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 05 [0 days] quota_test 0 1M 550M 00 [------] # sudo -u quota_test dd bs=1100k count=1 if=/dev/zero of=/mnt/xfs/test 1126400 bytes (1.1 MB) copied, 0.00136115 s, 828 MB/s # xfs_quota -x -c 'report -h' /mnt/xfs User quota on /mnt/xfs (/dev/loop1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 05 [0 days] quota_test 1.1M 1M 550M 01 [------] # sudo -u quota_test touch /mnt/xfs/a # xfs_quota -x -c 'report -h' /mnt/xfs User quota on /mnt/xfs (/dev/loop1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 05 [0 days] quota_test 1.1M 1M 550M 03 [6 days] # sudo -u quota_test touch /mnt/xfs/b # xfs_quota -x -c 'report -h' /mnt/xfs User quota on /mnt/xfs (/dev/loop1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 05 [0 days] quota_test 1.1M 1M 550M 05 [6 days] # sudo -u quota_test touch /mnt/xfs/c touch: cannot touch ‘/mnt/xfs/c’: Disk quota exceeded And the xfs_quota manpage doesn't even say that this is supposed to be a transition to a hard limit, although the code does seem to think so ... "Allows the quota warnings limit (i.e. the number of times a warning will be send to someone over quota) to be viewed and modified." There are other oddities too, like a (default) 0 day timer means "no timer" but a 0 warning count means "you get no warnings. you're done when you hit the soft quota." And the xfs_quota interface for setting the warnings is unexpectedly different from the interface for timers, as well. So ... thoughts? TBH I'd almost suggest reverting the increment until this is sorted, but I presume you changed this for a reason. :) (And it's been there a pretty long time, now.) Thanks, -Erifc