Commit 65eff9cc authored by Mark Fasheh's avatar Mark Fasheh

ocfs2: remove handle argument to ocfs2_start_trans()

All callers either pass in NULL directly, or a local variable that is
already set to NULL.

The internals of ocfs2_start_trans() get a nice cleanup as a result.
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent dae85832
...@@ -1158,7 +1158,7 @@ static int __ocfs2_flush_truncate_log(struct ocfs2_super *osb) ...@@ -1158,7 +1158,7 @@ static int __ocfs2_flush_truncate_log(struct ocfs2_super *osb)
goto out_mutex; goto out_mutex;
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_TRUNCATE_LOG_UPDATE); handle = ocfs2_start_trans(osb, OCFS2_TRUNCATE_LOG_UPDATE);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
mlog_errno(status); mlog_errno(status);
...@@ -1365,8 +1365,7 @@ int ocfs2_complete_truncate_log_recovery(struct ocfs2_super *osb, ...@@ -1365,8 +1365,7 @@ int ocfs2_complete_truncate_log_recovery(struct ocfs2_super *osb,
} }
} }
handle = ocfs2_start_trans(osb, NULL, handle = ocfs2_start_trans(osb, OCFS2_TRUNCATE_LOG_UPDATE);
OCFS2_TRUNCATE_LOG_UPDATE);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
mlog_errno(status); mlog_errno(status);
...@@ -1860,7 +1859,7 @@ int ocfs2_commit_truncate(struct ocfs2_super *osb, ...@@ -1860,7 +1859,7 @@ int ocfs2_commit_truncate(struct ocfs2_super *osb,
credits = ocfs2_calc_tree_trunc_credits(osb->sb, clusters_to_del, credits = ocfs2_calc_tree_trunc_credits(osb->sb, clusters_to_del,
fe, el); fe, el);
handle = ocfs2_start_trans(osb, NULL, credits); handle = ocfs2_start_trans(osb, credits);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
......
...@@ -364,7 +364,7 @@ struct ocfs2_journal_handle *ocfs2_start_walk_page_trans(struct inode *inode, ...@@ -364,7 +364,7 @@ struct ocfs2_journal_handle *ocfs2_start_walk_page_trans(struct inode *inode,
struct ocfs2_journal_handle *handle = NULL; struct ocfs2_journal_handle *handle = NULL;
int ret = 0; int ret = 0;
handle = ocfs2_start_trans(osb, NULL, OCFS2_INODE_UPDATE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (!handle) { if (!handle) {
ret = -ENOMEM; ret = -ENOMEM;
mlog_errno(ret); mlog_errno(ret);
......
...@@ -442,7 +442,7 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb, ...@@ -442,7 +442,7 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb,
credits = OCFS2_SIMPLE_DIR_EXTEND_CREDITS; credits = OCFS2_SIMPLE_DIR_EXTEND_CREDITS;
} }
handle = ocfs2_start_trans(osb, NULL, credits); handle = ocfs2_start_trans(osb, credits);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
......
...@@ -165,8 +165,7 @@ static int ocfs2_simple_size_update(struct inode *inode, ...@@ -165,8 +165,7 @@ static int ocfs2_simple_size_update(struct inode *inode,
struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
struct ocfs2_journal_handle *handle = NULL; struct ocfs2_journal_handle *handle = NULL;
handle = ocfs2_start_trans(osb, NULL, handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
OCFS2_INODE_UPDATE_CREDITS);
if (handle == NULL) { if (handle == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
mlog_errno(ret); mlog_errno(ret);
...@@ -196,7 +195,7 @@ static int ocfs2_orphan_for_truncate(struct ocfs2_super *osb, ...@@ -196,7 +195,7 @@ static int ocfs2_orphan_for_truncate(struct ocfs2_super *osb,
/* TODO: This needs to actually orphan the inode in this /* TODO: This needs to actually orphan the inode in this
* transaction. */ * transaction. */
handle = ocfs2_start_trans(osb, NULL, OCFS2_INODE_UPDATE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
mlog_errno(status); mlog_errno(status);
...@@ -496,7 +495,7 @@ static int ocfs2_extend_allocation(struct inode *inode, ...@@ -496,7 +495,7 @@ static int ocfs2_extend_allocation(struct inode *inode,
drop_alloc_sem = 1; drop_alloc_sem = 1;
credits = ocfs2_calc_extend_credits(osb->sb, fe, clusters_to_add); credits = ocfs2_calc_extend_credits(osb->sb, fe, clusters_to_add);
handle = ocfs2_start_trans(osb, NULL, credits); handle = ocfs2_start_trans(osb, credits);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -832,7 +831,7 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr) ...@@ -832,7 +831,7 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
} }
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_INODE_UPDATE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
mlog_errno(status); mlog_errno(status);
...@@ -905,7 +904,7 @@ static int ocfs2_write_remove_suid(struct inode *inode) ...@@ -905,7 +904,7 @@ static int ocfs2_write_remove_suid(struct inode *inode)
mlog_entry("(Inode %llu, mode 0%o)\n", mlog_entry("(Inode %llu, mode 0%o)\n",
(unsigned long long)oi->ip_blkno, inode->i_mode); (unsigned long long)oi->ip_blkno, inode->i_mode);
handle = ocfs2_start_trans(osb, NULL, OCFS2_INODE_UPDATE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (handle == NULL) { if (handle == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
mlog_errno(ret); mlog_errno(ret);
......
...@@ -524,7 +524,7 @@ static int ocfs2_truncate_for_delete(struct ocfs2_super *osb, ...@@ -524,7 +524,7 @@ static int ocfs2_truncate_for_delete(struct ocfs2_super *osb,
if (!fe->i_clusters) if (!fe->i_clusters)
goto bail; goto bail;
handle = ocfs2_start_trans(osb, handle, OCFS2_INODE_UPDATE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -590,7 +590,7 @@ static int ocfs2_remove_inode(struct inode *inode, ...@@ -590,7 +590,7 @@ static int ocfs2_remove_inode(struct inode *inode,
goto bail; goto bail;
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_DELETE_INODE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_DELETE_INODE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
mlog_errno(status); mlog_errno(status);
......
...@@ -67,7 +67,7 @@ static int ocfs2_set_inode_attr(struct inode *inode, unsigned flags, ...@@ -67,7 +67,7 @@ static int ocfs2_set_inode_attr(struct inode *inode, unsigned flags,
if (!S_ISDIR(inode->i_mode)) if (!S_ISDIR(inode->i_mode))
flags &= ~OCFS2_DIRSYNC_FL; flags &= ~OCFS2_DIRSYNC_FL;
handle = ocfs2_start_trans(osb, NULL, OCFS2_INODE_UPDATE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
mlog_errno(status); mlog_errno(status);
......
...@@ -129,20 +129,16 @@ static struct ocfs2_journal_handle *ocfs2_alloc_handle(struct ocfs2_super *osb) ...@@ -129,20 +129,16 @@ static struct ocfs2_journal_handle *ocfs2_alloc_handle(struct ocfs2_super *osb)
* you pass it a handle however, it may still return error, in which * you pass it a handle however, it may still return error, in which
* case it has free'd the passed handle for you. */ * case it has free'd the passed handle for you. */
struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb, struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb,
struct ocfs2_journal_handle *handle,
int max_buffs) int max_buffs)
{ {
int ret; int ret;
journal_t *journal = osb->journal->j_journal; journal_t *journal = osb->journal->j_journal;
struct ocfs2_journal_handle *handle;
mlog_entry("(max_buffs = %d)\n", max_buffs);
BUG_ON(!osb || !osb->journal->j_journal); BUG_ON(!osb || !osb->journal->j_journal);
if (ocfs2_is_hard_readonly(osb)) { if (ocfs2_is_hard_readonly(osb))
ret = -EROFS; return ERR_PTR(-EROFS);
goto done_free;
}
BUG_ON(osb->journal->j_state == OCFS2_JOURNAL_FREE); BUG_ON(osb->journal->j_state == OCFS2_JOURNAL_FREE);
BUG_ON(max_buffs <= 0); BUG_ON(max_buffs <= 0);
...@@ -153,13 +149,11 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb, ...@@ -153,13 +149,11 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb,
BUG(); BUG();
} }
if (!handle) handle = ocfs2_alloc_handle(osb);
handle = ocfs2_alloc_handle(osb);
if (!handle) { if (!handle) {
ret = -ENOMEM; ret = -ENOMEM;
mlog(ML_ERROR, "Failed to allocate memory for journal " mlog_errno(ret);
"handle!\n"); return ERR_PTR(ret);
goto done_free;
} }
down_read(&osb->journal->j_trans_barrier); down_read(&osb->journal->j_trans_barrier);
...@@ -168,6 +162,7 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb, ...@@ -168,6 +162,7 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb,
handle->k_handle = journal_start(journal, max_buffs); handle->k_handle = journal_start(journal, max_buffs);
if (IS_ERR(handle->k_handle)) { if (IS_ERR(handle->k_handle)) {
up_read(&osb->journal->j_trans_barrier); up_read(&osb->journal->j_trans_barrier);
kfree(handle);
ret = PTR_ERR(handle->k_handle); ret = PTR_ERR(handle->k_handle);
handle->k_handle = NULL; handle->k_handle = NULL;
...@@ -177,20 +172,12 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb, ...@@ -177,20 +172,12 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb,
ocfs2_abort(osb->sb, "Detected aborted journal"); ocfs2_abort(osb->sb, "Detected aborted journal");
ret = -EROFS; ret = -EROFS;
} }
goto done_free; return ERR_PTR(ret);
} }
atomic_inc(&(osb->journal->j_num_trans)); atomic_inc(&(osb->journal->j_num_trans));
mlog_exit_ptr(handle);
return handle; return handle;
done_free:
if (handle)
kfree(handle);
mlog_exit(ret);
return ERR_PTR(ret);
} }
void ocfs2_commit_trans(struct ocfs2_super *osb, void ocfs2_commit_trans(struct ocfs2_super *osb,
......
...@@ -216,7 +216,6 @@ static inline void ocfs2_checkpoint_inode(struct inode *inode) ...@@ -216,7 +216,6 @@ static inline void ocfs2_checkpoint_inode(struct inode *inode)
* perfectly legal to go through an entire transaction without having * perfectly legal to go through an entire transaction without having
* dirtied any buffers. */ * dirtied any buffers. */
struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb, struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb,
struct ocfs2_journal_handle *handle,
int max_buffs); int max_buffs);
void ocfs2_commit_trans(struct ocfs2_super *osb, void ocfs2_commit_trans(struct ocfs2_super *osb,
struct ocfs2_journal_handle *handle); struct ocfs2_journal_handle *handle);
......
...@@ -238,7 +238,7 @@ void ocfs2_shutdown_local_alloc(struct ocfs2_super *osb) ...@@ -238,7 +238,7 @@ void ocfs2_shutdown_local_alloc(struct ocfs2_super *osb)
} }
/* WINDOW_MOVE_CREDITS is a bit heavy... */ /* WINDOW_MOVE_CREDITS is a bit heavy... */
handle = ocfs2_start_trans(osb, NULL, OCFS2_WINDOW_MOVE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_WINDOW_MOVE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
mlog_errno(PTR_ERR(handle)); mlog_errno(PTR_ERR(handle));
handle = NULL; handle = NULL;
...@@ -405,7 +405,7 @@ int ocfs2_complete_local_alloc_recovery(struct ocfs2_super *osb, ...@@ -405,7 +405,7 @@ int ocfs2_complete_local_alloc_recovery(struct ocfs2_super *osb,
goto out_mutex; goto out_mutex;
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_WINDOW_MOVE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_WINDOW_MOVE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -896,7 +896,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb, ...@@ -896,7 +896,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
goto bail; goto bail;
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_WINDOW_MOVE_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_WINDOW_MOVE_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
......
...@@ -379,7 +379,7 @@ static int ocfs2_mknod(struct inode *dir, ...@@ -379,7 +379,7 @@ static int ocfs2_mknod(struct inode *dir,
} }
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_MKNOD_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_MKNOD_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -696,7 +696,7 @@ static int ocfs2_link(struct dentry *old_dentry, ...@@ -696,7 +696,7 @@ static int ocfs2_link(struct dentry *old_dentry,
goto out_unlock_inode; goto out_unlock_inode;
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_LINK_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_LINK_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
err = PTR_ERR(handle); err = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -886,7 +886,7 @@ static int ocfs2_unlink(struct inode *dir, ...@@ -886,7 +886,7 @@ static int ocfs2_unlink(struct inode *dir,
} }
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_UNLINK_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_UNLINK_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -1284,7 +1284,7 @@ static int ocfs2_rename(struct inode *old_dir, ...@@ -1284,7 +1284,7 @@ static int ocfs2_rename(struct inode *old_dir,
} }
} }
handle = ocfs2_start_trans(osb, NULL, OCFS2_RENAME_CREDITS); handle = ocfs2_start_trans(osb, OCFS2_RENAME_CREDITS);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
...@@ -1652,7 +1652,7 @@ static int ocfs2_symlink(struct inode *dir, ...@@ -1652,7 +1652,7 @@ static int ocfs2_symlink(struct inode *dir,
} }
} }
handle = ocfs2_start_trans(osb, NULL, credits); handle = ocfs2_start_trans(osb, credits);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
......
...@@ -302,7 +302,7 @@ static int ocfs2_block_group_alloc(struct ocfs2_super *osb, ...@@ -302,7 +302,7 @@ static int ocfs2_block_group_alloc(struct ocfs2_super *osb,
credits = ocfs2_calc_group_alloc_credits(osb->sb, credits = ocfs2_calc_group_alloc_credits(osb->sb,
le16_to_cpu(cl->cl_cpg)); le16_to_cpu(cl->cl_cpg));
handle = ocfs2_start_trans(osb, handle, credits); handle = ocfs2_start_trans(osb, credits);
if (IS_ERR(handle)) { if (IS_ERR(handle)) {
status = PTR_ERR(handle); status = PTR_ERR(handle);
handle = NULL; handle = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment