From nobody Fri Jul 08 21:46:29 2022 X-Original-To: dev-commits-src-branches@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 D227617D25CC; Fri, 8 Jul 2022 21:46:29 +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 4Lfn0j4svtz3llP; Fri, 8 Jul 2022 21:46:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1657316789; 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=5tRLZfJaJlxvKp3y2rGArDaw2H7mPqsEFcMg000y9mI=; b=Ifgm7iMzTlwyQbEncUMm+a+2ZZQeup/H6i73ZBXrTdESe27+a1tcisziLSQ1NIRYuUKUbB 3bf3tzHnfd9gq0VYp2VkLQyZMFtgIJN4p084OT0OZT8ufJ/nFZPSRs8P1ZxuGN8lO8KjJj twPefmHz+sMg4rUGcIIWVl4klsuS7iLkEQx7SL4E5ZPotRdKei3C8nOyaricCLpHoQwh4T wu+sLT4o7cNNy66VCUADO++Ws7Jxfu/5zL+pcwSSJmzMoquqedjBwPpQbiV3QssusML+XM XIlaeoqc8dSQwzxHQJ4AoKUpxuTLkrP/5/eXIVmlvxCFcJUqEwQuRO8J7Mmbtw== 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 4Lfn0j401wzM8p; Fri, 8 Jul 2022 21:46:29 +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 268LkTd5000627; Fri, 8 Jul 2022 21:46:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 268LkTkH000626; Fri, 8 Jul 2022 21:46:29 GMT (envelope-from git) Date: Fri, 8 Jul 2022 21:46:29 GMT Message-Id: <202207082146.268LkTkH000626@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: cb59f7dd2201 - stable/13 - Correctly update fs_dsize in growfs(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/stable/13 X-Git-Reftype: branch X-Git-Commit: cb59f7dd2201100ac5fbd693c144b21bb265fc45 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1657316789; 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=5tRLZfJaJlxvKp3y2rGArDaw2H7mPqsEFcMg000y9mI=; b=ssHYXQngLEYmhBZaxriw3PG37dulbqTLZ4Fp6lZqowA4KOMbWd6iJmWwk2CqUiLyV5QmBN g0Jn6HfYzc0w/pnpyJsElIgUaemjOSg+UL17O2ot0HW71IkkdfsMwIj+Sysl+o5tdg1tHZ PU8KMDtPoozPCIXEYdAUgIzPXQwMIPyRDSmzfPKGnVnMDPtB2NkwyJgjNLk0+2/dskksOO 1F2pCeqwmNlpYUykDG40TTYbk46KK513FDwOPkyONiJJcoiPAShrsj1xtC5d1O9fVMEuCN xHxB3GZB5CcSjpXpK5PHIJlN9OCW8ubjW7pBaQqvb59ZwmSWzL7rLWgO56hTPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1657316789; a=rsa-sha256; cv=none; b=KdFRostZDLEL0CpKyLi09tWuwIBB3PQ2SoueQCjFYQr6PT3Zk5nQpS07B2gb9DApn9rHAh 9lV6pJHxL4SfG+QHrVVlWY0KJyy7doJgMc3YZW6CioJhUbuiUwSrhCMBQLIglMdRkbCMUm e///EIDMosqIsuAWJMIxb0+X1wjrzCEo2mRErMxtLsm7hP/6V5yKWyni1rWXAzL46oaIlQ LhI4dJElXYQ+J7fao3h1kg4rsPGT495rIdwYgn8SNu9F7OUmHOCW2ippISShnvvuUl3sJB xVEpqI/mQRHHqhQlIfGY+JojcFtEJ2RhJyTyc2EGgNeIvMsMuhWBQLZIHOzTjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=cb59f7dd2201100ac5fbd693c144b21bb265fc45 commit cb59f7dd2201100ac5fbd693c144b21bb265fc45 Author: Kirk McKusick AuthorDate: 2022-06-28 04:46:15 +0000 Commit: Kirk McKusick CommitDate: 2022-07-08 21:46:16 +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. (cherry picked from commit 2049cc3218151f8d4108d878196905c34bbf15bc) --- 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; } /*