Date: Fri, 13 Dec 2002 17:16:26 -0800 (PST) From: Nate Lawson <nate@root.org> To: Julian Elischer <julian@elischer.org> Cc: FreeBSD current users <current@FreeBSD.ORG>, re@freebsd.org Subject: Re: 5.0 showstopper Message-ID: <Pine.BSF.4.21.0212131710440.37808-100000@root.org> In-Reply-To: <Pine.BSF.4.21.0212131650140.9978-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 13 Dec 2002, Julian Elischer wrote:
> On Fri, 13 Dec 2002, Peter Wemm wrote:
> > Julian Elischer wrote:
> > > looking at the code in src/sys/i386/i386/dump_machdep.c,
> > >
> > > we see:
> > > 78 dumplo = di->mediaoffset + di->mediasize - Maxmem *
> > > (off_t)PAGE_SIZE;
> > > 79 dumplo -= sizeof kdh * 2;
> > > 80 i = di->dumper(di->priv, &kdh, 0, dumplo, sizeof kdh);
> > > 81 if (i)
> > > 82 printf("\nDump failed writing header (%d)\n", i);
> > > 83 dumplo += sizeof kdh;
> > > 84 i = 0;
> > >
> > > It looks like the following test should go after line 77
> > >
> > > if (di->mediasize < ((Maxmem * (off_t)PAGE_SIZE) +
> > > (sizeof kdh * 2) + (16*1024)) {
> > > /* 16K is an arbitrary buffer
> > > * in case the swap part is
> > > * the first part
> > > */
> > > printf("\nDump failed. Partition too small.\n");
> > > return;
> > > }
> >
> > We used to force a 64K safety buffer for swapon, and I think we also did
> > 64K for dump before the last MI dump code conversion. I'd feel a little
> > happier if you used 64K here instead of 16K.
>
> I'm happy with 64k.. I just chose 16 arbitrarily because I remembered
> that there was SOME safety value but I couldn't remember what it was..
1. Why 2 * kdh (the header size)? I thought there was just one.
2. Excessive parens before compare
3. Extra \n in printf
So how about:
/*
* Minimum dumpdev size is Maxmem, dump header,
* and 64k safety margin.
*/
if (di->mediasize < Maxmem * (off_t)PAGE_SIZE + sizeof(kdh) +
64 * 1024) {
printf("Dump failed. Partition too small.\n");
return;
}
-Nate
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0212131710440.37808-100000>
