Date: Tue, 30 Jan 2007 14:19:36 +0100 From: Andre Albsmeier <Andre.Albsmeier@siemens.com> To: Mike Pritchard <mpp@freebsd.org> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/ufs/ffs ffs_alloc.c ffs_snapshot.c src/sys/ufs/ufs quota.h ufs_quota.c Message-ID: <20070130131936.GA10969@curry.mchp.siemens.de> In-Reply-To: <200701201158.l0KBwWFn088861@repoman.freebsd.org> References: <200701201158.l0KBwWFn088861@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 20-Jan-2007 at 11:58:32 +0000, Mike Pritchard wrote:
> mpp 2007-01-20 11:58:32 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/ufs/ffs ffs_alloc.c ffs_snapshot.c
> sys/ufs/ufs quota.h ufs_quota.c
> Log:
> Quota system cleanup.
>
> 1) Do not do quota accounting for the actual quota data files
> or for file system snapshot files ("system" files). This
> prevents a deadlock descibed in PR kern/30958 if the kernel
> ever has to grow the quota file. Snapshot files were already
> exempt from the quota checks, but this change generalized the check.
> 2) Fix a cast that caused extremely large uids/gids to incorrectly
> write the quota information to the data file at a truncated
> value for a uint_t32 id value. The incorrect cast caused quota
> files in this case to be around 4GB in size, with the correct cast
> they can now be 131GB in size. Also related to PR kern/30958.
> 3) Check for what appear to be negative UIDs/GIDs and not account
> for them. This prevents the quota files from becoming 131GB in
> size and causing quotacheck to run forever at bootup. This could
> also cause the kernel to try and expand the quota file, which might
> deadlock due to the issue in #1. kern/30958 and kern/38156
> (and some much older closed PR's).
> 4) With the deadlock problems gone, the kernel can now expand the
> size of the quota database files if it needs to.
> 5) Pass in the i-node count change value to chkiq and chkiqchg as an
> int, like it used to be before the common routine was split up
> into 2 different routines to increase / decrease the i-node in-use
> count. Prevents an underflow on the i-node count. Related
> to PR kern/89247.
> 6) Prevent the block usage from growing slowly if a file system is
> full and the write was denied due to that fact. PR kern/89247.
>
> Some of these changes require an updated quotacheck to prevent
> the creation of huge (131GB) quota data files (item #3).
>
> #1/#4 probably fixes a lot of the random hangs when quotas are enabled,
> possibly some of the jail hangs.
This might fix my PR# 2325 (no, this is no typo) as well.
-Andre
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070130131936.GA10969>
