ocfs2: Narrow the transaction for deleting xattrs from a bucket.
We move the transaction into the loop because in ocfs2_remove_extent, we will double the credits in function ocfs2_extend_rotate_transaction. So if we have a large loop number, we will soon waste much the journal space. Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
This commit is contained in:
parent
548b0f22bb
commit
88c3b0622a
|
@ -5094,30 +5094,30 @@ static int ocfs2_delete_xattr_in_bucket(struct inode *inode,
|
||||||
|
|
||||||
ocfs2_init_dealloc_ctxt(&ctxt.dealloc);
|
ocfs2_init_dealloc_ctxt(&ctxt.dealloc);
|
||||||
|
|
||||||
ctxt.handle = ocfs2_start_trans(osb, credits);
|
|
||||||
if (IS_ERR(ctxt.handle)) {
|
|
||||||
ret = PTR_ERR(ctxt.handle);
|
|
||||||
mlog_errno(ret);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < le16_to_cpu(xh->xh_count); i++) {
|
for (i = 0; i < le16_to_cpu(xh->xh_count); i++) {
|
||||||
xe = &xh->xh_entries[i];
|
xe = &xh->xh_entries[i];
|
||||||
if (ocfs2_xattr_is_local(xe))
|
if (ocfs2_xattr_is_local(xe))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
ctxt.handle = ocfs2_start_trans(osb, credits);
|
||||||
|
if (IS_ERR(ctxt.handle)) {
|
||||||
|
ret = PTR_ERR(ctxt.handle);
|
||||||
|
mlog_errno(ret);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ret = ocfs2_xattr_bucket_value_truncate(inode, bucket,
|
ret = ocfs2_xattr_bucket_value_truncate(inode, bucket,
|
||||||
i, 0, &ctxt);
|
i, 0, &ctxt);
|
||||||
|
|
||||||
|
ocfs2_commit_trans(osb, ctxt.handle);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
mlog_errno(ret);
|
mlog_errno(ret);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ocfs2_commit_trans(osb, ctxt.handle);
|
|
||||||
ocfs2_schedule_truncate_log_flush(osb, 1);
|
ocfs2_schedule_truncate_log_flush(osb, 1);
|
||||||
ocfs2_run_deallocs(osb, &ctxt.dealloc);
|
ocfs2_run_deallocs(osb, &ctxt.dealloc);
|
||||||
out:
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue