Date: Thu, 16 Nov 2017 15:24:23 -0800 (PST) From: "Rodney W. Grimes" <freebsd@pdx.rh.CN85.dnsmgr.net> To: Warner Losh <imp@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r325903 - in head: sbin/fsck_ffs sbin/newfs sys/sys Message-ID: <201711162324.vAGNONIg058059@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <201711162128.vAGLSEpZ019174@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[ Charset UTF-8 unsupported, converting... ] > Author: imp > Date: Thu Nov 16 21:28:14 2017 > New Revision: 325903 > URL: https://svnweb.freebsd.org/changeset/base/325903 > > Log: > Only try to enable CK_CLYGRP if we're running on kernel newer than > 1200046, the first version that supports this feature. If we set it, > then use an old kernel, we'll break the 'contract' of having > checksummed cylinder groups this flag signifies. To avoid creating > something with an inconsistent state, don't turn the flag on in these > cases. The first full fsck with a new kernel will turn this on. I would much rather have to force this flag on, then my problem would for the most part just go away, I can move file systems back and forth between kernels without any problems. Having fsck just turn it on without even a message let alone a way to stop it being turned on increases the pain factor. > Spnsored by: Netflix > Differential Revision: https://reviews.freebsd.org/D13114 > > Modified: > head/sbin/fsck_ffs/pass5.c > head/sbin/newfs/mkfs.c > head/sbin/newfs/newfs.c > head/sys/sys/param.h > > Modified: head/sbin/fsck_ffs/pass5.c > ============================================================================== > --- head/sbin/fsck_ffs/pass5.c Thu Nov 16 19:07:19 2017 (r325902) > +++ head/sbin/fsck_ffs/pass5.c Thu Nov 16 21:28:14 2017 (r325903) > @@ -35,6 +35,7 @@ static const char sccsid[] = "@(#)pass5.c 8.9 (Berkele > #include <sys/cdefs.h> > __FBSDID("$FreeBSD$"); > > +#define IN_RTLD /* So we pickup the P_OSREL defines */ > #include <sys/param.h> > #include <sys/sysctl.h> > > @@ -73,6 +74,7 @@ pass5(void) > newcg->cg_niblk = fs->fs_ipg; > if (preen == 0 && yflag == 0 && fs->fs_magic == FS_UFS2_MAGIC && > fswritefd != -1 && (fs->fs_metackhash & CK_CYLGRP) == 0 && > + getosreldate() >= P_OSREL_CK_CLYGRP && > reply("ADD CYLINDER GROUP CHECKSUM PROTECTION") != 0) { > fs->fs_metackhash |= CK_CYLGRP; > rewritecg = 1; > > Modified: head/sbin/newfs/mkfs.c > ============================================================================== > --- head/sbin/newfs/mkfs.c Thu Nov 16 19:07:19 2017 (r325902) > +++ head/sbin/newfs/mkfs.c Thu Nov 16 21:28:14 2017 (r325903) > @@ -44,6 +44,7 @@ static char sccsid[] = "@(#)mkfs.c 8.11 (Berkeley) 5/3 > #include <sys/cdefs.h> > __FBSDID("$FreeBSD$"); > > +#define IN_RTLD /* So we pickup the P_OSREL defines */ > #include <sys/param.h> > #include <sys/disklabel.h> > #include <sys/file.h> > @@ -495,7 +496,7 @@ restart: > /* > * Set flags for metadata that is being check-hashed. > */ > - if (Oflag > 1) > + if (Oflag > 1 && getosreldate() >= P_OSREL_CK_CLYGRP) > sblock.fs_metackhash = CK_CYLGRP; > > /* > > Modified: head/sbin/newfs/newfs.c > ============================================================================== > --- head/sbin/newfs/newfs.c Thu Nov 16 19:07:19 2017 (r325902) > +++ head/sbin/newfs/newfs.c Thu Nov 16 21:28:14 2017 (r325903) > @@ -398,10 +398,6 @@ main(int argc, char *argv[]) > if (pp != NULL) > pp->p_size *= secperblk; > } > - if (getosreldate() < __FreeBSD_version) { > - warnx("%s is newer than the running kernel and may not be compatible", > - getprogname()); > - } > mkfs(pp, special); > ufs_disk_close(&disk); > if (!jflag) > > Modified: head/sys/sys/param.h > ============================================================================== > --- head/sys/sys/param.h Thu Nov 16 19:07:19 2017 (r325902) > +++ head/sys/sys/param.h Thu Nov 16 21:28:14 2017 (r325903) > @@ -84,6 +84,7 @@ > #define P_OSREL_SHUTDOWN_ENOTCONN 1100077 > #define P_OSREL_MAP_GUARD 1200035 > #define P_OSREL_WRFSBASE 1200041 > +#define P_OSREL_CK_CLYGRP 1200046 > #define P_OSREL_VMTOTAL64 1200054 > > #define P_OSREL_MAJOR(x) ((x) / 100000) > > -- Rod Grimes rgrimes@freebsd.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711162324.vAGNONIg058059>