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>