From 8c6964b779cecbcf42475c896e5c61df192b80b9 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Mon, 19 Feb 2024 16:16:07 -0800 Subject: [PATCH] Eliminate unnecessary UFS1 integrity checks. The UFS1 integrity checks added in FreeBSD 14 were too aggressive for UFS1 filesystems created in FreeBSD 4 and 9 systems. This patch removes those tests which can be done safely since they are not relevant to the current implementation of UFS1. This is a follow-on report to bug report 264450 (comments 21-28). Reported by: slb@sonnet.com Tested by: slb@sonnet.com PR: 264450 (cherry picked from commit b241767f8ef38f9ca7c109fe2fccd11ccbfaa4f0) --- sbin/fsck_ffs/fsutil.c | 2 -- sys/ufs/ffs/ffs_subr.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/sbin/fsck_ffs/fsutil.c b/sbin/fsck_ffs/fsutil.c index 14196fa8356a..5252fc8d0917 100644 --- a/sbin/fsck_ffs/fsutil.c +++ b/sbin/fsck_ffs/fsutil.c @@ -1023,7 +1023,6 @@ check_cgmagic(int cg, struct bufarea *cgbp) CHK(cgp->cg_ndblk, >, sblock.fs_fpg, "%jd"); if (sblock.fs_magic == FS_UFS1_MAGIC) { CHK(cgp->cg_old_niblk, !=, sblock.fs_ipg, "%jd"); - CHK(cgp->cg_old_ncyl, >, sblock.fs_old_cpg, "%jd"); } else if (sblock.fs_magic == FS_UFS2_MAGIC) { CHK(cgp->cg_niblk, !=, sblock.fs_ipg, "%jd"); CHK(cgp->cg_initediblk, >, sblock.fs_ipg, "%jd"); @@ -1040,7 +1039,6 @@ check_cgmagic(int cg, struct bufarea *cgbp) } else if (sblock.fs_magic == FS_UFS1_MAGIC) { CHK(cgp->cg_niblk, !=, 0, "%jd"); CHK(cgp->cg_initediblk, !=, 0, "%jd"); - CHK(cgp->cg_old_ncyl, !=, sblock.fs_old_cpg, "%jd"); CHK(cgp->cg_old_niblk, !=, sblock.fs_ipg, "%jd"); CHK(cgp->cg_old_btotoff, !=, start, "%jd"); CHK(cgp->cg_old_boff, !=, cgp->cg_old_btotoff + diff --git a/sys/ufs/ffs/ffs_subr.c b/sys/ufs/ffs/ffs_subr.c index 29349f69fb96..ad9128f06266 100644 --- a/sys/ufs/ffs/ffs_subr.c +++ b/sys/ufs/ffs/ffs_subr.c @@ -398,10 +398,8 @@ validate_sblock(struct fs *fs, int isaltsblk) CHK(fs->fs_old_cpc, !=, 0, %jd); CHK(fs->fs_old_postblformat, !=, 1, %jd); CHK(fs->fs_old_nrpos, !=, 1, %jd); - CHK(fs->fs_old_spc, !=, fs->fs_fpg * fs->fs_old_nspf, %jd); CHK(fs->fs_old_nsect, !=, fs->fs_old_spc, %jd); CHK(fs->fs_old_npsect, !=, fs->fs_old_spc, %jd); - CHK(fs->fs_old_ncyl, !=, fs->fs_ncg, %jd); } else { /* Bad magic number, so assume not a superblock */ return (ENOENT);