Skip site navigation (1)Skip section navigation (2)
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>