aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/journal.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2/journal.c')
-rw-r--r--fs/ocfs2/journal.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index ca6f2094b006..f02af63e5fae 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -128,7 +128,6 @@ struct ocfs2_journal_handle *ocfs2_alloc_handle(struct ocfs2_super *osb)
128 retval->k_handle = NULL; 128 retval->k_handle = NULL;
129 129
130 INIT_LIST_HEAD(&retval->locks); 130 INIT_LIST_HEAD(&retval->locks);
131 INIT_LIST_HEAD(&retval->inode_list);
132 retval->journal = osb->journal; 131 retval->journal = osb->journal;
133 132
134 return retval; 133 return retval;
@@ -202,51 +201,12 @@ done_free:
202 return ERR_PTR(ret); 201 return ERR_PTR(ret);
203} 202}
204 203
205void ocfs2_handle_add_inode(struct ocfs2_journal_handle *handle,
206 struct inode *inode)
207{
208 BUG_ON(!handle);
209 BUG_ON(!inode);
210
211 atomic_inc(&inode->i_count);
212
213 /* we're obviously changing it... */
214 mutex_lock(&inode->i_mutex);
215
216 /* sanity check */
217 BUG_ON(OCFS2_I(inode)->ip_handle);
218 BUG_ON(!list_empty(&OCFS2_I(inode)->ip_handle_list));
219
220 OCFS2_I(inode)->ip_handle = handle;
221 list_move_tail(&(OCFS2_I(inode)->ip_handle_list), &(handle->inode_list));
222}
223
224static void ocfs2_handle_unlock_inodes(struct ocfs2_journal_handle *handle)
225{
226 struct list_head *p, *n;
227 struct inode *inode;
228 struct ocfs2_inode_info *oi;
229
230 list_for_each_safe(p, n, &handle->inode_list) {
231 oi = list_entry(p, struct ocfs2_inode_info,
232 ip_handle_list);
233 inode = &oi->vfs_inode;
234
235 OCFS2_I(inode)->ip_handle = NULL;
236 list_del_init(&OCFS2_I(inode)->ip_handle_list);
237
238 mutex_unlock(&inode->i_mutex);
239 iput(inode);
240 }
241}
242
243/* This is trivial so we do it out of the main commit 204/* This is trivial so we do it out of the main commit
244 * paths. Beware, it can be called from start_trans too! */ 205 * paths. Beware, it can be called from start_trans too! */
245static void ocfs2_commit_unstarted_handle(struct ocfs2_journal_handle *handle) 206static void ocfs2_commit_unstarted_handle(struct ocfs2_journal_handle *handle)
246{ 207{
247 mlog_entry_void(); 208 mlog_entry_void();
248 209
249 ocfs2_handle_unlock_inodes(handle);
250 /* You are allowed to add journal locks before the transaction 210 /* You are allowed to add journal locks before the transaction
251 * has started. */ 211 * has started. */
252 ocfs2_handle_cleanup_locks(handle->journal, handle); 212 ocfs2_handle_cleanup_locks(handle->journal, handle);
@@ -272,9 +232,6 @@ void ocfs2_commit_trans(struct ocfs2_journal_handle *handle)
272 return; 232 return;
273 } 233 }
274 234
275 /* release inode semaphores we took during this transaction */
276 ocfs2_handle_unlock_inodes(handle);
277
278 /* ocfs2_extend_trans may have had to call journal_restart 235 /* ocfs2_extend_trans may have had to call journal_restart
279 * which will always commit the transaction, but may return 236 * which will always commit the transaction, but may return
280 * error for any number of reasons. If this is the case, we 237 * error for any number of reasons. If this is the case, we