[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-id: <20180111121151.13197-1-sxwjean@me.com>
Date: Thu, 11 Jan 2018 20:11:51 +0800
From: Xiongwei Song <sxwjean@...com>
To: darrick.wong@...cle.com, linux-xfs@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Subject: [PATCH] xfs: destroy mutex pag_ici_reclaim_lock before free
xfs_perag_t structure
The mutex pag_ici_reclaim_lock of xfs_perag_t structure is initialized in
xfs_initialize_perag. If happen errors in xfs_initialize_perag, or free
resources in xfs_free_perag, wo need to destroy the mutex before free
perag.
Signed-off-by: Xiongwei Song <sxwjean@...com>
---
fs/xfs/xfs_mount.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index c879b517cc94..98fd41cbb9e1 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -162,6 +162,7 @@ xfs_free_perag(
ASSERT(pag);
ASSERT(atomic_read(&pag->pag_ref) == 0);
xfs_buf_hash_destroy(pag);
+ mutex_destroy(&pag->pag_ici_reclaim_lock);
call_rcu(&pag->rcu_head, __xfs_free_perag);
}
}
@@ -248,6 +249,7 @@ xfs_initialize_perag(
out_hash_destroy:
xfs_buf_hash_destroy(pag);
out_free_pag:
+ mutex_destroy(&pag->pag_ici_reclaim_lock);
kmem_free(pag);
out_unwind_new_pags:
/* unwind any prior newly initialized pags */
@@ -256,6 +258,7 @@ xfs_initialize_perag(
if (!pag)
break;
xfs_buf_hash_destroy(pag);
+ mutex_destroy(&pag->pag_ici_reclaim_lock);
kmem_free(pag);
}
return error;
--
2.15.1
Powered by blists - more mailing lists