[Ocfs2-tools-devel] [PATCH] fsck.ocfs2: Re-calculate ECC for system inodes if incorrect

Goldwyn Rodrigues rgoldwyn at suse.de
Mon Sep 30 06:55:53 PDT 2013


Signed-off-by: Goldwyn Rodrigues <rgoldwyn at suse.com>
---
 fsck.ocfs2/pass2.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/fsck.ocfs2/pass2.c b/fsck.ocfs2/pass2.c
index 681e817..15d3302 100644
--- a/fsck.ocfs2/pass2.c
+++ b/fsck.ocfs2/pass2.c
@@ -722,9 +722,17 @@ static unsigned pass2_dir_block_iterate(o2fsck_dirblock_entry *dbe,
 
 		ret = ocfs2_read_inode(dd->ost->ost_fs, dbe->e_ino,
 				       dd->inoblock_buf);
-		if (ret) {
+		if (ret == OCFS2_ET_BAD_CRC32) {
+			if (prompt(dd->ost, PY, PR_BAD_CRC32, 
+						"Directory inode %"PRIu64" "
+						"has bad CRC32. Recalculate CRC32 "
+						"and write inode block?", dbe->e_ino)) {
+				ocfs2_write_inode(dd->ost->ost_fs, dbe->e_ino,
+						dd->inoblock_buf);
+			}
+		} else if (ret) {
 			com_err(whoami, ret, "while reading dir inode %"PRIu64,
-				dbe->e_ino);
+					dbe->e_ino);
 			ret_flags |= OCFS2_DIRENT_ABORT;
 			goto out;
 		}
-- 
1.8.1.4


-- 
Goldwyn



More information about the Ocfs2-tools-devel mailing list