From nobody Thu Aug 4 23:08:40 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4LzPY526Vmz4YDr4; Thu, 4 Aug 2022 23:08:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4LzPY51fwxz42Lg; Thu, 4 Aug 2022 23:08:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659654521; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Pqpcr+BX7lBoMafqShAQrJo0+fezuV9CaGVbT9NWLhA=; b=M2nyCSVQEA0NYRb0aJdRQ2GTlwzv6mg4JBHpE9+rd1vgD6D2eZLao/QhTRciYiJTQj2ewD tFrkHq+uTchr60Hwq2CSUeiuwTEKCYgDJuEMwF8IejBSEDSSMTPpD1UildP40u13ZjEHwT KZIWyufh2+eTZ7sz8Drf2eMqka4fomQqDG1i8nOQfibUOe/Zp0s/7TP8noy0HIuOmOj6XE dk02sO99/XKDsmUaQb8xoB/W2ON762UJDysHEC4N+I81MXqTRtxg/rYnXXT98vIgsx/oiS Q7u3vgArFQ3a162QPaLYvBG3+AQoVIzixNdnZXBzNZZ2HkMQK/wCFkexjwTgiw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4LzPY50WKlzXY3; Thu, 4 Aug 2022 23:08:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 274N8eOp004298; Thu, 4 Aug 2022 23:08:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 274N8ed5004297; Thu, 4 Aug 2022 23:08:40 GMT (envelope-from git) Date: Thu, 4 Aug 2022 23:08:40 GMT Message-Id: <202208042308.274N8ed5004297@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kirk McKusick Subject: git: 23c8b19c1d13 - main - Drop checks with last alternate superblock in fsck_ffs(8). List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 23c8b19c1d13b8fbd10c5941de0f2618f59db1c9 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659654521; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Pqpcr+BX7lBoMafqShAQrJo0+fezuV9CaGVbT9NWLhA=; b=CKSvY5fjHai3Bp+wgFIN+TH++QtdtVXGR8IZFlflR59p8c5bO9lGwInfxM1OFoVZnONOJ8 jxIyt1igGefhT2F55aWGJ+pVvovXnBuxbzaKQpAjdHtaVHsybsFaBx5tb2AbGyX8m7uC26 ONEN4yJkkbIwf6uFXkAtz3eGP8R4uTOLPW34ayydcLGqj4wETQiL8ONBT5kWb+u6SIRHhs Wa7JKofwWrsDA9WEgd6UTPqU38feK6oddLR4x183vhc5v6MXNr3pjJJO6diKNW2Tpv/8mj /TMXBDrsFSaUJkRQH0T3LhCS4V++Ihx1tj7i9Qy5C6Vn5UBszYJBhuXUP8TarA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1659654521; a=rsa-sha256; cv=none; b=dwFOUl7e7NuHDy11xZYg/vZhj93qbXjDohkoToLpPQopLV7bG1xT8ohC4KD7X/SinXqNtu 9EH4CdYau82PoIPL0ER6SXBzFMzDW2hSkoRW049pUmxMCryUFQAdvzL367D/hf+0QqQHEN rMMHU9basldgFW9FsWOobIkPCMdBiVrmKf/JfRDVMISZrTnvN52uBhORxUVVfNcFC920yI k16XXe/QDZJiDdbqme/kSv2toDedxsNYrmGjwAFBKekmv+HYV2jkfd7YW94SGK6+wtUows OsBGdSRYmNX66RCz/JgTjhN2r5XiZBwzRTVB8iBPCi6E1yuhSSiqxCgDWbUoPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=23c8b19c1d13b8fbd10c5941de0f2618f59db1c9 commit 23c8b19c1d13b8fbd10c5941de0f2618f59db1c9 Author: Kirk McKusick AuthorDate: 2022-08-04 23:06:43 +0000 Commit: Kirk McKusick CommitDate: 2022-08-04 23:08:18 +0000 Drop checks with last alternate superblock in fsck_ffs(8). The fsck_ffs(8) utility made sanity checks of critical superblock fields by comparing the values of those fields in the standard superblock againt the values of those fields in the last alternate superblock. The code for validating a superblock now cover all the checked fields as well as many more. Further the checks done are far more comprehensive. So we now drop the alternate superblock checks as they no longer provide value. Dropping these checks also eliminates the need to read the alternate superblock. --- sbin/fsck_ffs/setup.c | 64 ++------------------------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) diff --git a/sbin/fsck_ffs/setup.c b/sbin/fsck_ffs/setup.c index 0daac100499a..cb95d18859b0 100644 --- a/sbin/fsck_ffs/setup.c +++ b/sbin/fsck_ffs/setup.c @@ -60,8 +60,6 @@ __FBSDID("$FreeBSD$"); struct inoinfo **inphead, **inpsort; /* info about all inodes */ -struct bufarea asblk; -#define altsblock (*asblk.b_un.b_fs) #define POWEROF2(num) (((num) & ((num) - 1)) == 0) static int calcsb(char *dev, int devfd, struct fs *fs); @@ -163,10 +161,6 @@ setup(char *dev) pfatal("from before 2002 with the command ``fsck -c 2''\n"); exit(EEXIT); } - if ((asblk.b_flags & B_DIRTY) != 0 && !bflag) { - memmove(&altsblock, &sblock, (size_t)sblock.fs_sbsize); - flush(fswritefd, &asblk); - } if (preen == 0 && yflag == 0 && sblock.fs_magic == FS_UFS2_MAGIC && fswritefd != -1 && chkrecovery(fsreadfd) == 0 && reply("SAVE DATA TO FIND ALTERNATE SUPERBLOCKS") != 0) @@ -252,7 +246,7 @@ int readsb(int listerr) { off_t super; - int bad, ret, flags; + int ret, flags; struct fs *fs; super = bflag ? bflag * dev_bsize : UFS_STDSB; @@ -293,58 +287,6 @@ readsb(int listerr) dev_bsize = sblock.fs_fsize / fsbtodb(&sblock, 1); sblk.b_bno = sblock.fs_sblockactualloc / dev_bsize; sblk.b_size = SBLOCKSIZE; - /* - * Compare all fields that should not differ in alternate super block. - * When an alternate super-block is specified this check is skipped. - */ - if (bflag) - goto out; - getblk(&asblk, cgsblock(&sblock, sblock.fs_ncg - 1), sblock.fs_sbsize); - if (asblk.b_errs) - return (0); - bad = 0; -#define CHK(x, y) \ - if (altsblock.x != sblock.x) { \ - bad++; \ - if (listerr && debug) \ - printf("SUPER BLOCK VS ALTERNATE MISMATCH %s: " y " vs " y "\n", \ - #x, (intmax_t)sblock.x, (intmax_t)altsblock.x); \ - } - CHK(fs_sblkno, "%jd"); - CHK(fs_cblkno, "%jd"); - CHK(fs_iblkno, "%jd"); - CHK(fs_dblkno, "%jd"); - CHK(fs_ncg, "%jd"); - CHK(fs_bsize, "%jd"); - CHK(fs_fsize, "%jd"); - CHK(fs_frag, "%jd"); - CHK(fs_bmask, "%#jx"); - CHK(fs_fmask, "%#jx"); - CHK(fs_bshift, "%jd"); - CHK(fs_fshift, "%jd"); - CHK(fs_fragshift, "%jd"); - CHK(fs_fsbtodb, "%jd"); - CHK(fs_sbsize, "%jd"); - CHK(fs_nindir, "%jd"); - CHK(fs_inopb, "%jd"); - CHK(fs_cssize, "%jd"); - CHK(fs_ipg, "%jd"); - CHK(fs_fpg, "%jd"); - CHK(fs_magic, "%#jx"); -#undef CHK - if (bad) { - if (listerr == 0) - return (0); - if (preen) - printf("%s: ", cdevname); - printf( - "VALUES IN SUPER BLOCK LSB=%jd DISAGREE WITH THOSE IN\n" - "LAST ALTERNATE LSB=%jd\n", - sblk.b_bno, asblk.b_bno); - if (reply("IGNORE ALTERNATE SUPER BLOCK") == 0) - return (0); - } -out: /* * If not yet done, update UFS1 superblock with new wider fields. */ @@ -373,10 +315,8 @@ sblock_init(void) fsmodified = 0; lfdir = 0; initbarea(&sblk, BT_SUPERBLK); - initbarea(&asblk, BT_SUPERBLK); sblk.b_un.b_buf = Malloc(SBLOCKSIZE); - asblk.b_un.b_buf = Malloc(SBLOCKSIZE); - if (sblk.b_un.b_buf == NULL || asblk.b_un.b_buf == NULL) + if (sblk.b_un.b_buf == NULL) errx(EEXIT, "cannot allocate space for superblock"); dev_bsize = secsize = DEV_BSIZE; }