[PATCH 2/4] xfs: recovery of XLOG_UNMOUNT_TRANS leaks memory

Dave Chinner
2014-08-26T01:21:53Z

From: Dave Chinner <dchinner@redhat.com>

It aborts recovery without freeing the current trans structure that
we are decoding.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
fs/xfs/xfs_log_recover.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 1970732f..460cf98 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -3587,8 +3587,9 @@ xlog_recovery_process_ophdr(
/* unexpected flag values */
case XLOG_UNMOUNT_TRANS:
xfs_warn(log->l_mp, "%s: Unmount LR", __func__);
- error = 0;
- break;
+ xlog_recover_free_trans(trans);
+ return 0;
+
case XLOG_START_TRANS:
xfs_warn(log->l_mp, "%s: bad transaction 0x%x", __func__, tid);
ASSERT(0);
--
2.0.0