Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Mar 2001 18:10:59 +0100
From:      Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
To:        "Matthew N. Dodd" <winter@jurai.net>
Cc:        Mike Tancsa <mike@sentex.net>, stable@FreeBSD.ORG
Subject:   Re: problems with quotas on STABLE
Message-ID:  <20010305181059.A65640@curry.mchp.siemens.de>
In-Reply-To: <Pine.BSF.4.21.0103041624460.43971-100000@sasami.jurai.net>; from winter@jurai.net on Sun, Mar 04, 2001 at 04:26:09PM -0500
References:  <4.2.2.20010226064702.03756c60@marble.sentex.net> <Pine.BSF.4.21.0103041624460.43971-100000@sasami.jurai.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 04-Mar-2001 at 16:26:09 -0500, Matthew N. Dodd wrote:
> On Mon, 26 Feb 2001, Mike Tancsa wrote:
> > Not sure how long this problem has been around, but at bootup time the 
> > quota file creation process always seems to fail for me. If I kill the file 
> > and let it start from scratch, same problem as if I let it update it after 
> > a reboot.
> ...
> > quotacheck: /home/quota.user: seek failed: File too large
> 
> So hunt down the files/directories on that filesystem that have really
> high UID/GID numbers and change them to something sane.  The quota file
> format includes a record for every UID/GID on the system between the
> smallest and the largest.

FYI, we had the same problem here when using PCNFS without a user
being logged in (PCNFS then writes files as nobody which incorrectly
has uid -2 which turns out to be 2^32 - 1 in FreeBSD). The corresponding
PR is PR# 2325, so you see that the problem is really old :-).

Since then I use a (really ugly) patch which maps all uid's which 
are bigger than 65535 to our nobody:

--- sys/ufs/ufs/ufs_quota.c.ORI	Mon Jul 31 09:36:03 2000
+++ sys/ufs/ufs/ufs_quota.c	Mon Jul 31 09:36:44 2000
@@ -750,6 +750,8 @@
 	/*
 	 * Check the cache first.
 	 */
+	if( id > 65535 )
+		id = 65534;
 	dqh = DQHASH(dqvp, id);
 	for (dq = dqh->lh_first; dq; dq = dq->dq_hash.le_next) {
 		if (dq->dq_id != id ||
--- sbin/quotacheck/quotacheck.c.ORI	Mon Jul 31 09:20:54 2000
+++ sbin/quotacheck/quotacheck.c	Mon Jul 31 09:21:15 2000
@@ -506,6 +506,8 @@
 	struct fileusage *fup, **fhp;
 	int len;
 
+	if( id > 65535 )
+		id = 65534;
 	if ((fup = lookup(id, type)) != NULL)
 		return (fup);
 	if (name)


Yes, this is ugly but has worked very well all the time.

	-Andre

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010305181059.A65640>