|
@@ -6873,7 +6873,7 @@ int ocfs2_convert_inline_data_to_extents(struct inode *inode,
|
|
|
if (IS_ERR(handle)) {
|
|
|
ret = PTR_ERR(handle);
|
|
|
mlog_errno(ret);
|
|
|
- goto out_unlock;
|
|
|
+ goto out;
|
|
|
}
|
|
|
|
|
|
ret = ocfs2_journal_access_di(handle, INODE_CACHE(inode), di_bh,
|
|
@@ -6931,7 +6931,7 @@ int ocfs2_convert_inline_data_to_extents(struct inode *inode,
|
|
|
if (ret) {
|
|
|
mlog_errno(ret);
|
|
|
need_free = 1;
|
|
|
- goto out_commit;
|
|
|
+ goto out_unlock;
|
|
|
}
|
|
|
|
|
|
page_end = PAGE_CACHE_SIZE;
|
|
@@ -6964,12 +6964,16 @@ int ocfs2_convert_inline_data_to_extents(struct inode *inode,
|
|
|
if (ret) {
|
|
|
mlog_errno(ret);
|
|
|
need_free = 1;
|
|
|
- goto out_commit;
|
|
|
+ goto out_unlock;
|
|
|
}
|
|
|
|
|
|
inode->i_blocks = ocfs2_inode_sector_count(inode);
|
|
|
}
|
|
|
|
|
|
+out_unlock:
|
|
|
+ if (pages)
|
|
|
+ ocfs2_unlock_and_free_pages(pages, num_pages);
|
|
|
+
|
|
|
out_commit:
|
|
|
if (ret < 0 && did_quota)
|
|
|
dquot_free_space_nodirty(inode,
|
|
@@ -6989,15 +6993,11 @@ out_commit:
|
|
|
|
|
|
ocfs2_commit_trans(osb, handle);
|
|
|
|
|
|
-out_unlock:
|
|
|
+out:
|
|
|
if (data_ac)
|
|
|
ocfs2_free_alloc_context(data_ac);
|
|
|
-
|
|
|
-out:
|
|
|
- if (pages) {
|
|
|
- ocfs2_unlock_and_free_pages(pages, num_pages);
|
|
|
+ if (pages)
|
|
|
kfree(pages);
|
|
|
- }
|
|
|
|
|
|
return ret;
|
|
|
}
|