Date: Mon, 11 Jun 2018 20:38:31 +0000 (UTC) From: Warner Losh <imp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r334980 - in head: . sbin/dump Message-ID: <201806112038.w5BKcVPc077696@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: imp Date: Mon Jun 11 20:38:30 2018 New Revision: 334980 URL: https://svnweb.freebsd.org/changeset/base/334980 Log: 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. Modified: head/UPDATING head/sbin/dump/dump.8 head/sbin/dump/main.c Modified: head/UPDATING ============================================================================== --- head/UPDATING Mon Jun 11 20:38:26 2018 (r334979) +++ head/UPDATING Mon Jun 11 20:38:30 2018 (r334980) @@ -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 Modified: head/sbin/dump/dump.8 ============================================================================== --- head/sbin/dump/dump.8 Mon Jun 11 20:38:26 2018 (r334979) +++ head/sbin/dump/dump.8 Mon Jun 11 20:38:30 2018 (r334980) @@ -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. Modified: head/sbin/dump/main.c ============================================================================== --- head/sbin/dump/main.c Mon Jun 11 20:38:26 2018 (r334979) +++ head/sbin/dump/main.c Mon Jun 11 20:38:30 2018 (r334980) @@ -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));
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806112038.w5BKcVPc077696>