[Cluster-devel] [gfs2-utils PATCH 2/7] fsck.gfs2: Remember the previous rgrp pointer for speed

Bob Peterson rpeterso at redhat.com
Wed Jun 22 19:26:47 UTC 2016


This is a minor speedup: function check_n_fix_bitmap will now
remember the previous rgrp that it used. This should make it
faster.

Signed-off-by: Bob Peterson <rpeterso at redhat.com>
---
 gfs2/fsck/metawalk.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gfs2/fsck/metawalk.c b/gfs2/fsck/metawalk.c
index c0cc2ab..cda59ac 100644
--- a/gfs2/fsck/metawalk.c
+++ b/gfs2/fsck/metawalk.c
@@ -40,9 +40,14 @@ int check_n_fix_bitmap(struct gfs2_sbd *sdp, struct rgrp_tree *rgd,
 		{"free", "data", "unlinked", "inode", "reserved"},
 		/* gfs1 descriptions: */
 		{"free", "data", "free meta", "metadata", "reserved"}};
+	static struct rgrp_tree *prevrgd = NULL;
 
-	if (rgd == NULL || !rgrp_contains_block(rgd, blk))
+	if (prevrgd && rgrp_contains_block(prevrgd, blk)) {
+		rgd = prevrgd;
+	} else if (rgd == NULL || !rgrp_contains_block(rgd, blk)) {
 		rgd = gfs2_blk2rgrpd(sdp, blk);
+		prevrgd = rgd;
+	}
 
 	gfs1rg = (struct gfs_rgrp *)&rgd->rg;
 
-- 
2.5.5




More information about the Cluster-devel mailing list