Revert size limits.

The size limits came from a flawed understanding of dump records.
The real issue was that dump was bogusly interpreting c_count
sometimes. r334978 fixes that.
This commit is contained in:
Warner Losh 2018-06-11 20:38:30 +00:00
parent b9c7cba522
commit 37d6a8f458
3 changed files with 1 additions and 16 deletions

View File

@ -32,13 +32,6 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
20180611:
A bug in dump has been found where it can incorrectly dump filesystems
with more than 512k inodes and produce corrupted dump images. r334968
closes the door by not dumping filesystems with more than 512k inodes.
While older dumps may 'work' the image they produce may or may not be
readable depending on many factors.
20180530:
The kernel / userland interface for devinfo changed, so you'll
need a new kernel and userland as a pair for it to work (rebuilding

View File

@ -566,8 +566,3 @@ This will be fixed in a later version of
.Fx .
Presently, it works if you set it setuid (like it used to be), but this
might constitute a security risk.
.Pp
It is not possible to safely dump filesystems that use more than
524288 inodes.
.Nm
refuses to dump any filesystem that has more than 524288 inodes.

View File

@ -100,7 +100,7 @@ main(int argc, char *argv[])
struct fstab *dt;
char *map, *mntpt;
int ch, mode, mntflags;
int i, ret, anydirskipped, c_count, bflag = 0, Tflag = 0, honorlevel = 1;
int i, ret, anydirskipped, bflag = 0, Tflag = 0, honorlevel = 1;
int just_estimate = 0;
ino_t maxino;
char *tmsg;
@ -452,9 +452,6 @@ main(int argc, char *argv[])
quit("TP_BSIZE (%d) is not a power of 2", TP_BSIZE);
maxino = sblock->fs_ipg * sblock->fs_ncg;
mapsize = roundup(howmany(maxino, CHAR_BIT), TP_BSIZE);
c_count = howmany(mapsize * sizeof(char), TP_BSIZE);
if (c_count > TP_NINDIR)
quit("fs is too large for dump!");
usedinomap = (char *)calloc((unsigned) mapsize, sizeof(char));
dumpdirmap = (char *)calloc((unsigned) mapsize, sizeof(char));
dumpinomap = (char *)calloc((unsigned) mapsize, sizeof(char));