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>
