From nobody Tue Jun 28 04:48:39 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 3542C86C280; Tue, 28 Jun 2022 04:48:40 +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 4LXBtw0Nzgz3p1c; Tue, 28 Jun 2022 04:48:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1656391720; 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=s1Lrp/Vr1XQoDMzABwnNwLB+EE4wl29AmyIk3x8wjHQ=; b=ekWjLLkktUIGMN+9dNQQRkrUzMmbNFZfSrhsqopjJPFVpCvBtxwjmkwKuI6RWu3fdvxRXN fax8YlFnB/dSgn+WSksZFK7gIiWd4Jz0JFInnMMSeMbhdPTL4qGHkWslH23JeR6s9ebWDE eMK9mNTbI54JPuGgqKMhPDDBB5l82kpogIvoNoCsy818q4TdGDIQzkvxrPjfooPyIJuEZ5 FVLu6P+bDFM+CHx5Q/1I82YxtlGYA9QsL+4JvJyUdCZO38hwC069if8yXehFRH/jBSbVht WTEwpQNcVcg+LcY4rTX262fKe3712lWx6UYD6upIjRDPvUkCXeTX0VA5sEHyow== 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 D0B3316752; Tue, 28 Jun 2022 04:48:39 +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 25S4mdXu070041; Tue, 28 Jun 2022 04:48:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 25S4mdwm070040; Tue, 28 Jun 2022 04:48:39 GMT (envelope-from git) Date: Tue, 28 Jun 2022 04:48:39 GMT Message-Id: <202206280448.25S4mdwm070040@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: 2049cc321815 - main - Correctly update fs_dsize in growfs(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: 2049cc3218151f8d4108d878196905c34bbf15bc Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1656391720; 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=s1Lrp/Vr1XQoDMzABwnNwLB+EE4wl29AmyIk3x8wjHQ=; b=PwpKh5scOZnDBE1u6A4GiSatBrt6EBslcGPqP9DGooJggWTBN30wVOmMUckNdKoLBnyxiP VwPdggXaiycCeQhXKprWxEH/H+OFhnb75/qIb+cMUfTrLaeOlh7Hkc0Gb/SrQ84iaxWeWj +7faSL18arDYhysCbX34daP0ZFX1+e1y+S27cTDWH4ImyigzJcENj+RgpkjfFLO6ttT/Nf Ngs6x+QY1FrWQDExvcLX0WU8bbjx5KtTjPwWhE1haKNPJi85TX/S+mC3Az9gokkKVAa744 y4/ggefBeGvjKgT6XIoaBljgwyLGMxIfXlN4ap5aE6jLmiBVM+U2sevX7XymXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1656391720; a=rsa-sha256; cv=none; b=Rueud9/SuiUKU5wRzdcmjqszJP93aXCtS9748JWYHOTbJrasUfRkj1cCnKO/HBs8VWT5re CXMV5Ps9yNSyorQYq1Tptz5aE8BYK7XGOiCx8hYsBpOQjMJAYW6Lrsq0+2mWmGm8YWweze lybCAqNP+NbTslJFwpi1ApmDHHqYJf74fJG10IbswD+mcxbIj1+GIEPxMJEDHpgh4p+Rf5 ZYFXCQk7SqDxEIAPFnammfrLRJYwiAh1fKH1ePPGOvPTa7O2PVFEA3+KlZSVJR2msDXi/N jwN7xCDVHupgYYDToV26H9/+hTkTJLj7VNJ4OPOApExAZKNjXOUvuo6CvxOu6w== 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=2049cc3218151f8d4108d878196905c34bbf15bc commit 2049cc3218151f8d4108d878196905c34bbf15bc Author: Kirk McKusick AuthorDate: 2022-06-28 04:46:15 +0000 Commit: Kirk McKusick CommitDate: 2022-06-28 04:48:24 +0000 Correctly update fs_dsize in growfs(8) When growing a UFS/FFS filesystem, the size of the summary information may expand into additional blocks. These blocks must be removed from fs_dsize which records the number of blocks in the filesystem that can be used to hold filesystem data. While here also update the fs_old_dsize and fs_old_size fields for compatibility with kernels that were compiled before the addition of UFS2. Reported by: Edward Tomasz Napiera MFC after: 1 week --- sbin/growfs/growfs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sbin/growfs/growfs.c b/sbin/growfs/growfs.c index 6a57924fb7bc..69e6f04dd4c2 100644 --- a/sbin/growfs/growfs.c +++ b/sbin/growfs/growfs.c @@ -427,6 +427,7 @@ initcg(int cylno, time_t modtime, int fso, unsigned int Nflag) sblock.fs_dsize += dlower; } sblock.fs_dsize += acg.cg_ndblk - dupper; + sblock.fs_old_dsize = sblock.fs_dsize; if ((i = dupper % sblock.fs_frag)) { acg.cg_frsum[sblock.fs_frag - i]++; for (d = dupper + sblock.fs_frag - i; dupper < d; dupper++) { @@ -636,6 +637,7 @@ updjcg(int cylno, time_t modtime, int fsi, int fso, unsigned int Nflag) DBG_PRINT0("\n"); acg.cg_ndblk = dmax - cbase; sblock.fs_dsize += acg.cg_ndblk - aocg.cg_ndblk; + sblock.fs_old_dsize = sblock.fs_dsize; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk / sblock.fs_frag; @@ -813,6 +815,10 @@ updcsloc(time_t modtime, int fsi, int fso, unsigned int Nflag) DBG_LEAVE; return; } + /* Adjust fs_dsize by added summary blocks */ + sblock.fs_dsize -= howmany(sblock.fs_cssize, sblock.fs_fsize) - + howmany(osblock.fs_cssize, osblock.fs_fsize); + sblock.fs_old_dsize = sblock.fs_dsize; ocscg = dtog(&osblock, osblock.fs_csaddr); cs = fscs + ocscg; @@ -1507,7 +1513,8 @@ main(int argc, char **argv) "filesystem size %s", newsizebuf, oldsizebuf); } - sblock.fs_size = dbtofsb(&osblock, size / DEV_BSIZE); + sblock.fs_old_size = sblock.fs_size = + dbtofsb(&osblock, size / DEV_BSIZE); sblock.fs_providersize = dbtofsb(&osblock, mediasize / DEV_BSIZE); /* @@ -1628,7 +1635,8 @@ main(int argc, char **argv) sblock.fs_ncg--; if (sblock.fs_magic == FS_UFS1_MAGIC) sblock.fs_old_ncyl = sblock.fs_ncg * sblock.fs_old_cpg; - sblock.fs_size = sblock.fs_ncg * sblock.fs_fpg; + sblock.fs_old_size = sblock.fs_size = + sblock.fs_ncg * sblock.fs_fpg; } /*