Before we were ignoring the flag set by rindex_read to tell whether there are bad entries and the rindex was (sometimes) fixed by subsequent checks failing. Check that flag and enable an rindex repair test that previously failed.
Signed-off-by: Andrew Price <[email protected]> --- gfs2/fsck/initialize.c | 2 +- tests/fsck.at | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c index 4c266d9a..58dd23d3 100644 --- a/gfs2/fsck/initialize.c +++ b/gfs2/fsck/initialize.c @@ -751,7 +751,7 @@ static int fetch_rgrps_level(struct gfs2_sbd *sdp, enum rgindex_trust_level lvl, if (rg_repair(sdp, lvl, ok) != 0) goto fail; - if (rindex_read(sdp, count, ok) != 0) + if (rindex_read(sdp, count, ok) != 0 || !*ok) goto fail; ret = read_rgrps(sdp, *count); diff --git a/tests/fsck.at b/tests/fsck.at index 3b1c5af3..538d41ad 100644 --- a/tests/fsck.at +++ b/tests/fsck.at @@ -36,10 +36,10 @@ AT_KEYWORDS(fsck.gfs2 fsck) GFS_NUKERG_CHECK([mkfs.gfs2 -O -p lock_nolock $GFS_TGT], [-r 1]) AT_CLEANUP -#AT_SETUP([Fix bad rindex entry #0]) -#AT_KEYWORDS(fsck.gfs2 fsck) -#GFS_NUKERG_CHECK([mkfs.gfs2 -O -p lock_nolock $GFS_TGT], [-i 0]) -#AT_CLEANUP +AT_SETUP([Fix bad rindex entry #0]) +AT_KEYWORDS(fsck.gfs2 fsck) +GFS_NUKERG_CHECK([mkfs.gfs2 -O -p lock_nolock $GFS_TGT], [-i 0]) +AT_CLEANUP AT_SETUP([Fix bad rindex entry #1]) AT_KEYWORDS(fsck.gfs2 fsck) -- 2.30.2
