From 643efb8a791e8b16b649643b41e02fab96d28df8 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Mon, 8 Nov 1999 19:27:13 +0000 Subject: [PATCH] ChangeLog, icheck.c, ncheck.c: icheck.c (do_icheck): ncheck.c (do_ncheck): If ext2fs_open_inode_scan() returns EXT2_ET_BAD_BLOCK_IN_INODE_TABLE loop to skip over the bad blocks in the inode table. --- debugfs/ChangeLog | 7 +++++++ debugfs/icheck.c | 8 ++++++-- debugfs/ncheck.c | 9 +++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/debugfs/ChangeLog b/debugfs/ChangeLog index 9ce757c..8877780 100644 --- a/debugfs/ChangeLog +++ b/debugfs/ChangeLog @@ -1,3 +1,10 @@ +1999-11-08 + + * icheck.c (do_icheck): + * ncheck.c (do_ncheck): If ext2fs_open_inode_scan() returns + EXT2_ET_BAD_BLOCK_IN_INODE_TABLE loop to skip over the bad + blocks in the inode table. + 1999-10-26 * Release of E2fsprogs 1.17 diff --git a/debugfs/icheck.c b/debugfs/icheck.c index 968d457..136c52e 100644 --- a/debugfs/icheck.c +++ b/debugfs/icheck.c @@ -99,7 +99,9 @@ void do_icheck(int argc, char **argv) goto error_out; } - retval = ext2fs_get_next_inode(scan, &ino, &inode); + do { + retval = ext2fs_get_next_inode(scan, &ino, &inode); + } while (retval == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE); if (retval) { com_err("icheck", retval, "while starting inode scan"); goto error_out; @@ -131,7 +133,9 @@ void do_icheck(int argc, char **argv) break; next: - retval = ext2fs_get_next_inode(scan, &ino, &inode); + do { + retval = ext2fs_get_next_inode(scan, &ino, &inode); + } while (retval == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE); if (retval) { com_err("icheck", retval, "while doing inode scan"); diff --git a/debugfs/ncheck.c b/debugfs/ncheck.c index 7dec343..83fe9b5 100644 --- a/debugfs/ncheck.c +++ b/debugfs/ncheck.c @@ -98,7 +98,9 @@ void do_ncheck(int argc, char **argv) goto error_out; } - retval = ext2fs_get_next_inode(scan, &ino, &inode); + do { + retval = ext2fs_get_next_inode(scan, &ino, &inode); + } while (retval == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE); if (retval) { com_err("ncheck", retval, "while starting inode scan"); goto error_out; @@ -132,7 +134,10 @@ void do_ncheck(int argc, char **argv) break; next: - retval = ext2fs_get_next_inode(scan, &ino, &inode); + do { + retval = ext2fs_get_next_inode(scan, &ino, &inode); + } while (retval == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE); + if (retval) { com_err("ncheck", retval, "while doing inode scan"); -- 1.8.3.1