From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sandeen.net ([63.231.237.45]:42188 "EHLO sandeen.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751125AbdATXIj (ORCPT ); Fri, 20 Jan 2017 18:08:39 -0500 Subject: Re: [PATCH v2 4/5] xfs_repair: zero shared_vn References: <148494391629.5256.3328772079712970611.stgit@birch.djwong.org> <148494394162.5256.166843220095123974.stgit@birch.djwong.org> <20170120225251.GH12985@birch.djwong.org> From: Eric Sandeen Message-ID: <9307d194-d679-20c6-e83c-ac7fb38e467e@sandeen.net> Date: Fri, 20 Jan 2017 17:08:37 -0600 MIME-Version: 1.0 In-Reply-To: <20170120225251.GH12985@birch.djwong.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-xfs-owner@vger.kernel.org List-ID: List-Id: xfs To: "Darrick J. Wong" , sandeen@redhat.com Cc: linux-xfs@vger.kernel.org On 1/20/17 4:52 PM, Darrick J. Wong wrote: > Since shared_vn always has to be zero, zero it at the end of repair. ^^^^^^^^^^^^^^^^^^^^ Or at the beginning ;) > Signed-off-by: Darrick J. Wong > --- > v2: reset shared_vn in phase 1 and tell the user about it, per sandeen > --- > repair/phase1.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/repair/phase1.c b/repair/phase1.c > index 126d0b3..ee5d3d7 100644 > --- a/repair/phase1.c > +++ b/repair/phase1.c > @@ -138,6 +138,17 @@ _("Cannot disable lazy-counters on V5 fs\n")); > } > } > > + /* shared_vn should be zero */ > + if (sb->sb_shared_vn) { > + if (!no_modify) { > + do_warn(_("resetting shared_vn to zero\n")); > + sb->sb_shared_vn = 0; > + primary_sb_modified = 1; > + } else { > + do_warn(_("would reset shared_vn to zero\n")); > + } > + } > + No other test has the if/else on no modify, they simply say what the problem is, "correcting" etc, but at the /end/ it says whether or not it's written out: if (primary_sb_modified) { if (!no_modify) { do_warn(_("writing modified primary superblock\n")); write_primary_sb(sb, sb->sb_sectsize); } else { do_warn(_("would write modified primary superblock\n")); } } So I think just something like: + if (sb->sb_shared_vn) { + do_warn(_("superblock has invalid shared_vn, resetting\n")); + sb->sb_shared_vn = 0; + primary_sb_modified = 1; + } would suffice. -Eric > if (primary_sb_modified) { > if (!no_modify) { > do_warn(_("writing modified primary superblock\n")); > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >