ocfs2: have ocfs2_extend_trans() take handle_t
authorMark Fasheh <mark.fasheh@oracle.com>
Thu, 5 Oct 2006 21:15:36 +0000 (14:15 -0700)
committerMark Fasheh <mark.fasheh@oracle.com>
Sat, 2 Dec 2006 02:27:04 +0000 (18:27 -0800)
No reason to use our wrapper struct in this function, so take the handle_t
directly.

Also fixes a bug where we were incorrectly setting the handle to NULL in
case of a failure from journal_restart()

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
fs/ocfs2/alloc.c
fs/ocfs2/file.c
fs/ocfs2/journal.c
fs/ocfs2/journal.h

index f43bc5f..74b93f9 100644 (file)
@@ -1074,7 +1074,7 @@ static int ocfs2_replay_truncate_records(struct ocfs2_super *osb,
                /* TODO: Perhaps we can calculate the bulk of the
                 * credits up front rather than extending like
                 * this. */
-               status = ocfs2_extend_trans(handle,
+               status = ocfs2_extend_trans(handle->k_handle,
                                            OCFS2_TRUNCATE_LOG_FLUSH_ONE_REC);
                if (status < 0) {
                        mlog_errno(status);
index 1be74c4..d8bd2c3 100644 (file)
@@ -566,7 +566,7 @@ restarted_transaction:
                        credits = ocfs2_calc_extend_credits(osb->sb,
                                                            fe,
                                                            clusters_to_add);
-                       status = ocfs2_extend_trans(handle, credits);
+                       status = ocfs2_extend_trans(handle->k_handle, credits);
                        if (status < 0) {
                                /* handle still has to be committed at
                                 * this point. */
index e26cd0c..7c0c57a 100644 (file)
@@ -323,20 +323,18 @@ void ocfs2_commit_trans(struct ocfs2_journal_handle *handle)
  * good because transaction ids haven't yet been recorded on the
  * cluster locks associated with this handle.
  */
-int ocfs2_extend_trans(struct ocfs2_journal_handle *handle,
-                      int nblocks)
+int ocfs2_extend_trans(handle_t *handle, int nblocks)
 {
        int status;
 
        BUG_ON(!handle);
-       BUG_ON(!(handle->flags & OCFS2_HANDLE_STARTED));
        BUG_ON(!nblocks);
 
        mlog_entry_void();
 
        mlog(0, "Trying to extend transaction by %d blocks\n", nblocks);
 
-       status = journal_extend(handle->k_handle, nblocks);
+       status = journal_extend(handle, nblocks);
        if (status < 0) {
                mlog_errno(status);
                goto bail;
@@ -344,9 +342,8 @@ int ocfs2_extend_trans(struct ocfs2_journal_handle *handle,
 
        if (status > 0) {
                mlog(0, "journal_extend failed, trying journal_restart\n");
-               status = journal_restart(handle->k_handle, nblocks);
+               status = journal_restart(handle, nblocks);
                if (status < 0) {
-                       handle->k_handle = NULL;
                        mlog_errno(status);
                        goto bail;
                }
index 35ae835..9f3d79d 100644 (file)
@@ -264,8 +264,7 @@ struct ocfs2_journal_handle *ocfs2_start_trans(struct ocfs2_super *osb,
                                               struct ocfs2_journal_handle *handle,
                                               int max_buffs);
 void                        ocfs2_commit_trans(struct ocfs2_journal_handle *handle);
-int                         ocfs2_extend_trans(struct ocfs2_journal_handle *handle,
-                                               int nblocks);
+int                         ocfs2_extend_trans(handle_t *handle, int nblocks);
 
 /*
  * Create access is for when we get a newly created buffer and we're