Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754562AbeAKNMS (ORCPT + 1 other); Thu, 11 Jan 2018 08:12:18 -0500 Received: from pv33p00im-asmtp003.me.com ([17.142.194.252]:48855 "EHLO pv33p00im-asmtp003.me.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752507AbeAKNMQ (ORCPT ); Thu, 11 Jan 2018 08:12:16 -0500 X-Greylist: delayed 3611 seconds by postgrey-1.27 at vger.kernel.org; Thu, 11 Jan 2018 08:12:15 EST X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-01-11_04:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1011 suspectscore=2 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1801110169 From: Xiongwei Song To: darrick.wong@oracle.com, linux-xfs@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH] xfs: destroy mutex pag_ici_reclaim_lock before free xfs_perag_t structure Date: Thu, 11 Jan 2018 20:11:51 +0800 Message-id: <20180111121151.13197-1-sxwjean@me.com> X-Mailer: git-send-email 2.15.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: 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 --- 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