svn commit: r325903 - in head: sbin/fsck_ffs sbin/newfs sys/sys
Warner Losh
imp at FreeBSD.org
Thu Nov 16 21:28:16 UTC 2017
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.
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)
More information about the svn-src-all
mailing list