xfs
[Top] [All Lists]

[PATCH] xfs_repair: release corrupt directory node buffer

To: david@xxxxxxxxxxxxx
Subject: [PATCH] xfs_repair: release corrupt directory node buffer
From: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
Date: Thu, 3 Sep 2015 21:21:04 -0700
Cc: xfs@xxxxxxxxxxx, sandeen@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
User-agent: Mutt/1.5.21 (2010-09-15)
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@xxxxxxxxxxx>
Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
---
 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);

<Prev in Thread] Current Thread [Next in Thread>