From: Theodore Ts'o Date: Tue, 22 Jul 2014 18:48:41 +0000 (-0400) Subject: e2fsck: check error return from ext2fs_extent_fix_parents in pass 1 X-Git-Tag: v1.42.12~78 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=7722961d2c4c327d45b9c42dd29e8231cc0e1c4b;p=tools%2Fe2fsprogs.git e2fsck: check error return from ext2fs_extent_fix_parents in pass 1 Signed-off-by: Theodore Ts'o --- diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index e714b0f..1269a12 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -1843,7 +1843,12 @@ report_problem: pctx->str = "ext2fs_extent_delete"; return; } - ext2fs_extent_fix_parents(ehandle); + pctx->errcode = ext2fs_extent_fix_parents(ehandle); + if (pctx->errcode && + pctx->errcode != EXT2_ET_NO_CURRENT_NODE) { + pctx->str = "ext2fs_extent_fix_parents"; + return; + } pctx->errcode = ext2fs_extent_get(ehandle, EXT2_EXTENT_CURRENT, &extent); @@ -1878,8 +1883,14 @@ report_problem: pctx->blk2 = extent.e_lblk; pctx->num = e_info.curr_level - 1; problem = PR_1_EXTENT_INDEX_START_INVALID; - if (fix_problem(ctx, problem, pctx)) - ext2fs_extent_fix_parents(ehandle); + if (fix_problem(ctx, problem, pctx)) { + pctx->errcode = + ext2fs_extent_fix_parents(ehandle); + if (pctx->errcode) { + pctx->str = "ext2fs_extent_fix_parents"; + return; + } + } } scan_extent_node(ctx, pctx, pb, extent.e_lblk, last_lblk, eof_block, ehandle);