From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Peterson Date: Thu, 11 Aug 2011 17:04:20 -0400 (EDT) Subject: [Cluster-devel] [Patch 14/44] fsck.gfs2: Ask to reclaim unlinked meta on a per-rgrp basis only Message-ID: <494574614.544714.1313096660001.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit >From 0307db694e7316ab93071239704428ba5e346fcb Mon Sep 17 00:00:00 2001 From: Bob Peterson Date: Mon, 8 Aug 2011 15:16:01 -0500 Subject: [PATCH 14/44] fsck.gfs2: Ask to reclaim unlinked meta on a per-rgrp basis only Before this patch, fsck.gfs2 would ask for every unlinked metadata bit whether you wanted to reclaim it as free space. This patch makes it ask only once per resource group, and reports which resource group so that the user doesn't think it's stuck in an infinite loop. rhbz#675723 --- gfs2/fsck/initialize.c | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c index 18d13cc..c0e83a7 100644 --- a/gfs2/fsck/initialize.c +++ b/gfs2/fsck/initialize.c @@ -195,7 +195,7 @@ static void check_rgrp_integrity(struct gfs2_sbd *sdp, struct rgrp_list *rgd, int *this_rg_bad) { uint32_t rg_free, rg_reclaimed; - int rgb, x, y, off, bytes_to_check, total_bytes_to_check; + int rgb, x, y, off, bytes_to_check, total_bytes_to_check, asked = 0; unsigned int state; rg_free = rg_reclaimed = 0; @@ -234,9 +234,17 @@ static void check_rgrp_integrity(struct gfs2_sbd *sdp, struct rgrp_list *rgd, } /* GFS2_BLKST_UNLINKED */ *this_rg_bad = 1; - if (!(*fixit)) { - if (query(_("Okay to reclaim unlinked " - "inodes? (y/n)"))) + if (!asked) { + char msg[256]; + + asked = 1; + sprintf(msg, + _("Okay to reclaim unlinked " + "inodes in resource group " + "%lld (0x%llx)? (y/n)"), + (unsigned long long)rgd->ri.ri_addr, + (unsigned long long)rgd->ri.ri_addr); + if (query("%s", msg)) *fixit = 1; } if (!(*fixit)) -- 1.7.4.4