int status;
        /* there is a really tiny chance the journal calls could fail,
         * but we wouldn't want inconsistent blocks in *any* case. */
-       u64 fe_ptr, bg_ptr, prev_bg_ptr;
+       u64 bg_ptr, prev_bg_ptr;
        struct ocfs2_dinode *fe = (struct ocfs2_dinode *) fe_bh->b_data;
        struct ocfs2_group_desc *bg = (struct ocfs2_group_desc *) bg_bh->b_data;
        struct ocfs2_group_desc *prev_bg = (struct ocfs2_group_desc *) prev_bg_bh->b_data;
                (unsigned long long)le64_to_cpu(bg->bg_blkno),
                (unsigned long long)le64_to_cpu(prev_bg->bg_blkno));
 
-       fe_ptr = le64_to_cpu(fe->id2.i_chain.cl_recs[chain].c_blkno);
        bg_ptr = le64_to_cpu(bg->bg_next_group);
        prev_bg_ptr = le64_to_cpu(prev_bg->bg_next_group);
 
                                         OCFS2_JOURNAL_ACCESS_WRITE);
        if (status < 0) {
                mlog_errno(status);
-               goto out_rollback;
+               goto out;
        }
 
        prev_bg->bg_next_group = bg->bg_next_group;
                                         bg_bh, OCFS2_JOURNAL_ACCESS_WRITE);
        if (status < 0) {
                mlog_errno(status);
-               goto out_rollback;
+               goto out_rollback_prev_bg;
        }
 
        bg->bg_next_group = fe->id2.i_chain.cl_recs[chain].c_blkno;
                                         fe_bh, OCFS2_JOURNAL_ACCESS_WRITE);
        if (status < 0) {
                mlog_errno(status);
-               goto out_rollback;
+               goto out_rollback_bg;
        }
 
        fe->id2.i_chain.cl_recs[chain].c_blkno = bg->bg_blkno;
        ocfs2_journal_dirty(handle, fe_bh);
 
-out_rollback:
-       if (status < 0) {
-               fe->id2.i_chain.cl_recs[chain].c_blkno = cpu_to_le64(fe_ptr);
-               bg->bg_next_group = cpu_to_le64(bg_ptr);
-               prev_bg->bg_next_group = cpu_to_le64(prev_bg_ptr);
-       }
+out:
+       return status;
 
-       if (status)
-               mlog_errno(status);
+out_rollback_bg:
+       bg->bg_next_group = cpu_to_le64(bg_ptr);
+out_rollback_prev_bg:
+       prev_bg->bg_next_group = cpu_to_le64(prev_bg_ptr);
+
+       mlog_errno(status);
        return status;
 }