[Ocfs2-devel] [PATCH 1/2] cannot metex_unlock without mutex_lock in ocfs2_remove_btree_range
Joseph Qi
joseph.qi at huawei.com
Mon Jun 10 00:51:08 PDT 2013
On 2013/6/10 15:14, Jeff Liu wrote:
> On 06/10/2013 02:27 PM, Joseph Qi wrote:
>
>> In ocfs2_remove_btree_range, when calling ocfs2_lock_refcount_tree and
>> ocfs2_prepare_refcount_change_for_del failed, it goes to out and then
>> tries to call mutex_unlock without mutex_lock before.
>
> It's better to merge both into one patch because it's apparent that
> ocfs2_reserve_blocks_for_rec_trunc() need to fix in the same way for
> the same reason.
>
> Thanks,
> -Jeff
>
>>
>> Signed-off-by: Joseph Qi <joseph.qi at huawei.com>
>> ---
>> fs/ocfs2/alloc.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
>> index b8a9d87..941e883 100644
>> --- a/fs/ocfs2/alloc.c
>> +++ b/fs/ocfs2/alloc.c
>> @@ -5655,7 +5655,7 @@ int ocfs2_remove_btree_range(struct inode *inode,
>> &ref_tree, NULL);
>> if (ret) {
>> mlog_errno(ret);
>> - goto out;
>> + goto bail;
>> }
>>
>> ret = ocfs2_prepare_refcount_change_for_del(inode,
>> @@ -5666,7 +5666,7 @@ int ocfs2_remove_btree_range(struct inode *inode,
>> &extra_blocks);
>> if (ret < 0) {
>> mlog_errno(ret);
>> - goto out;
>> + goto bail;
>> }
>> }
>>
>> @@ -5734,7 +5734,7 @@ out_commit:
>> ocfs2_commit_trans(osb, handle);
>> out:
>> mutex_unlock(&tl_inode->i_mutex);
>> -
>> +bail:
>> if (meta_ac)
>> ocfs2_free_alloc_context(meta_ac);
>>
>
>
>
>
Thanks for your review. I will merge them and then resend the patch.
More information about the Ocfs2-devel
mailing list