Skip to content

Commit

Permalink
ocfs2/xattr: Move clusters free into dealloc.
Browse files Browse the repository at this point in the history
Move clusters free process into dealloc context so that
they can be freed after the transaction.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
  • Loading branch information
Tao Ma authored and Mark Fasheh committed Jan 5, 2009
1 parent 2891d29 commit c73f60f
Showing 1 changed file with 1 addition and 13 deletions.
14 changes: 1 addition & 13 deletions fs/ocfs2/xattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,6 @@ static int __ocfs2_remove_xattr_range(struct inode *inode,
int ret;
u64 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos);
struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
struct inode *tl_inode = osb->osb_tl_inode;
handle_t *handle;
struct ocfs2_alloc_context *meta_ac = NULL;
struct ocfs2_extent_tree et;
Expand All @@ -470,16 +469,6 @@ static int __ocfs2_remove_xattr_range(struct inode *inode,
return ret;
}

mutex_lock(&tl_inode->i_mutex);

if (ocfs2_truncate_log_needs_flush(osb)) {
ret = __ocfs2_flush_truncate_log(osb);
if (ret < 0) {
mlog_errno(ret);
goto out;
}
}

handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS);
if (IS_ERR(handle)) {
ret = PTR_ERR(handle);
Expand Down Expand Up @@ -509,14 +498,13 @@ static int __ocfs2_remove_xattr_range(struct inode *inode,
goto out_commit;
}

ret = ocfs2_truncate_log_append(osb, handle, phys_blkno, len);
ret = ocfs2_cache_cluster_dealloc(dealloc, phys_blkno, len);
if (ret)
mlog_errno(ret);

out_commit:
ocfs2_commit_trans(osb, handle);
out:
mutex_unlock(&tl_inode->i_mutex);

if (meta_ac)
ocfs2_free_alloc_context(meta_ac);
Expand Down

0 comments on commit c73f60f

Please sign in to comment.