[PATCH] xfs_repair: release corrupt directory node buffer

Darrick J. Wong darrick.wong at oracle.com
Thu Sep 3 23:21:04 CDT 2015


If repair encounters a dir node block that fails checksum or
verification, free the buffer before the directory gets rebuilt.

Reported-by: Eric Sandeen <sandeen at sandeen.net>
Signed-off-by: Darrick J. Wong <darrick.wong at oracle.com>
---
 repair/dir2.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/repair/dir2.c b/repair/dir2.c
index a5646f8..54c49eb 100644
--- a/repair/dir2.c
+++ b/repair/dir2.c
@@ -200,6 +200,7 @@ _("bad dir magic number 0x%x in inode %" PRIu64 " bno = %u\n"),
 		}
 		/* corrupt node; rebuild the dir. */
 		if (bp->b_error == -EFSBADCRC || bp->b_error == -EFSCORRUPTED) {
+			libxfs_putbuf(bp);
 			do_warn(
 _("corrupt tree block %u for directory inode %" PRIu64 "\n"),
 				bno, da_cursor->ino);



More information about the xfs mailing list