From: Dave Chinner Date: Fri, 7 Jun 2013 00:26:06 +0000 (+1000) Subject: xfs_repair: drop buffer reference on symlink error X-Git-Tag: v3.2.0-alpha1~89 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1ba28b64e69ce3a7989df88f71a5cb608b1c71e3;p=thirdparty%2Fxfsprogs-dev.git xfs_repair: drop buffer reference on symlink error Failing to drop the buffer when the header is bad results in a deadlock in a later phase when we try to read the remote symlink again. Signed-off-by: Dave Chinner Reviewed-by: Ben Myers Signed-off-by: Ben Myers --- diff --git a/repair/dinode.c b/repair/dinode.c index 1f3fd6ce0..13e5f35d5 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -1523,6 +1523,7 @@ _("cannot read inode %" PRIu64 ", file block %d, disk block %" PRIu64 "\n"), do_warn( _("bad symlink header ino %" PRIu64 ", file block %d, disk block %" PRIu64 "\n"), lino, i, fsbno); + libxfs_putbuf(bp); return(1); } buf_data += sizeof(struct xfs_dsymlink_hdr);