mlog_exit is used to record the exit status of a function.
But because it is added in so many functions, if we enable it,
the system logs get filled up quickly and cause too much I/O.
So actually no one can open it for a production system or even
for a test.
This patch just try to remove it or change it. So:
1. if all the error paths already use mlog_errno, it is just removed.
   Otherwise, it will be replaced by mlog_errno.
2. if it is used to print some return value, it is replaced with
   mlog(0,...).
mlog_exit_ptr is changed to mlog(0.
All those mlog(0,...) will be replaced with trace events later.
Signed-off-by: Tao Ma <boyu.mt@taobao.com>
 bail:
        brelse(eb_bh);
 
-       mlog_exit(retval);
+       mlog(0, "retval = %d\n", retval);
        return retval;
 }
 
                        brelse(bhs[i]);
                        bhs[i] = NULL;
                }
+               mlog_errno(status);
        }
-       mlog_exit(status);
        return status;
 }
 
                kfree(new_eb_bhs);
        }
 
-       mlog_exit(status);
        return status;
 }
 
 bail:
        brelse(new_eb_bh);
 
-       mlog_exit(status);
        return status;
 }
 
 bail:
        brelse(bh);
 
-       mlog_exit(status);
        return status;
 }
 
                                              ocfs2_et_get_last_eb_blk(et),
                                              &bh);
                if (ret) {
-                       mlog_exit(ret);
+                       mlog_errno(ret);
                        goto out;
                }
                eb = (struct ocfs2_extent_block *) bh->b_data;
 bail:
        brelse(last_eb_bh);
 
-       mlog_exit(status);
        return status;
 }
 
        }
 
 leave:
-       mlog_exit(status);
        if (reason_ret)
                *reason_ret = reason;
        return status;
                                              ocfs2_et_get_last_eb_blk(et),
                                              &last_eb_bh);
                if (ret) {
-                       mlog_exit(ret);
+                       mlog_errno(ret);
                        goto out;
                }
 
 
        osb->truncated_clusters += num_clusters;
 bail:
-       mlog_exit(status);
        return status;
 }
 
        osb->truncated_clusters = 0;
 
 bail:
-       mlog_exit(status);
        return status;
 }
 
        iput(data_alloc_inode);
 
 out:
-       mlog_exit(status);
        return status;
 }
 
                mlog_errno(status);
        else
                ocfs2_init_steal_slots(osb);
-
-       mlog_exit(status);
 }
 
 #define OCFS2_TRUNCATE_LOG_FLUSH_INTERVAL (2 * HZ)
        *tl_inode = inode;
        *tl_bh    = bh;
 bail:
-       mlog_exit(status);
        return status;
 }
 
        if (status < 0 && (*tl_copy)) {
                kfree(*tl_copy);
                *tl_copy = NULL;
+               mlog_errno(status);
        }
 
-       mlog_exit(status);
        return status;
 }
 
 bail_up:
        mutex_unlock(&tl_inode->i_mutex);
 
-       mlog_exit(status);
        return status;
 }
 
                brelse(osb->osb_tl_bh);
                iput(osb->osb_tl_inode);
        }
-
-       mlog_exit_void();
 }
 
 int ocfs2_truncate_log_init(struct ocfs2_super *osb)
        osb->osb_tl_bh    = tl_bh;
        osb->osb_tl_inode = tl_inode;
 
-       mlog_exit(status);
        return status;
 }
 
 
        ocfs2_free_path(path);
 
-       mlog_exit(status);
        return status;
 }
 
 
 bail:
        brelse(bh);
 
-       mlog_exit(err);
        return err;
 }
 
        if (err < 0)
                err = -EIO;
 
-       mlog_exit(err);
        return err;
 }
 
 out:
        if (unlock)
                unlock_page(page);
-       mlog_exit(ret);
        return ret;
 }
 
 
        ret = block_write_full_page(page, ocfs2_get_block, wbc);
 
-       mlog_exit(ret);
-
        return ret;
 }
 
 bail:
        status = err ? 0 : p_blkno;
 
-       mlog_exit((int)status);
-
        return status;
 }
 
 {
        struct file *file = iocb->ki_filp;
        struct inode *inode = file->f_path.dentry->d_inode->i_mapping->host;
-       int ret;
 
        /*
         * Fallback to buffered I/O if we see an inode without
        if (i_size_read(inode) <= offset)
                return 0;
 
-       ret = __blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev,
-                                  iov, offset, nr_segs,
-                                  ocfs2_direct_IO_get_blocks,
-                                  ocfs2_dio_end_io, NULL, 0);
-
-       mlog_exit(ret);
-       return ret;
+       return __blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev,
+                                   iov, offset, nr_segs,
+                                   ocfs2_direct_IO_get_blocks,
+                                   ocfs2_dio_end_io, NULL, 0);
 }
 
 static void ocfs2_figure_cluster_boundaries(struct ocfs2_super *osb,
 
         * can get modified during recovery even if read-only. */
        if (ocfs2_is_hard_readonly(osb)) {
                ret = -EROFS;
+               mlog_errno(ret);
                goto out;
        }
 
                 * uptodate. */
                ret = -EIO;
                put_bh(bh);
+               mlog_errno(ret);
        }
 
        ocfs2_metadata_cache_io_unlock(ci);
 out:
-       mlog_exit(ret);
        return ret;
 }
 
 
 bail:
 
-       mlog_exit(status);
        return status;
 }
 
 
        if (ocfs2_is_hard_readonly(osb) || ocfs2_is_soft_readonly(osb)) {
                ret = -EROFS;
+               mlog_errno(ret);
                goto out;
        }
 
        if (!buffer_uptodate(bh)) {
                ret = -EIO;
                put_bh(bh);
+               mlog_errno(ret);
        }
 
 out:
-       mlog_exit(ret);
        return ret;
 }
 
        }
 
 out:
-       mlog_exit(ret);
        return ret;
 }
 
 
 
 struct mlog_bits mlog_and_bits = MLOG_BITS_RHS(MLOG_INITIAL_AND_MASK);
 EXPORT_SYMBOL_GPL(mlog_and_bits);
-struct mlog_bits mlog_not_bits = MLOG_BITS_RHS(MLOG_INITIAL_NOT_MASK);
+struct mlog_bits mlog_not_bits = MLOG_BITS_RHS(0);
 EXPORT_SYMBOL_GPL(mlog_not_bits);
 
 static ssize_t mlog_mask_show(u64 mask, char *buf)
 }
 
 static struct mlog_attribute mlog_attrs[MLOG_MAX_BITS] = {
-       define_mask(EXIT),
        define_mask(TCP),
        define_mask(MSG),
        define_mask(SOCKET),
 
 
 /* bits that are frequently given and infrequently matched in the low word */
 /* NOTE: If you add a flag, you need to also update masklog.c! */
-#define ML_EXIT                0x0000000000000002ULL /* func call exit */
 #define ML_TCP         0x0000000000000004ULL /* net cluster/tcp.c */
 #define ML_MSG         0x0000000000000008ULL /* net network messages */
 #define ML_SOCKET      0x0000000000000010ULL /* net socket lifetime */
 #define ML_KTHREAD     0x4000000000000000ULL /* kernel thread activity */
 
 #define MLOG_INITIAL_AND_MASK (ML_ERROR|ML_NOTICE)
-#define MLOG_INITIAL_NOT_MASK (ML_EXIT)
 #ifndef MLOG_MASK_PREFIX
 #define MLOG_MASK_PREFIX 0
 #endif
                mlog(ML_ERROR, "status = %lld\n", (long long)_st);      \
 } while (0)
 
-#if defined(CONFIG_OCFS2_DEBUG_MASKLOG)
-/*
- * We disable this for sparse.
- */
-#if !defined(__CHECKER__)
-#define mlog_exit(st) do {                                                  \
-       if (__builtin_types_compatible_p(typeof(st), unsigned long))         \
-               mlog(ML_EXIT, "EXIT: %lu\n", (unsigned long) (st));          \
-       else if (__builtin_types_compatible_p(typeof(st), signed long))      \
-               mlog(ML_EXIT, "EXIT: %ld\n", (signed long) (st));            \
-       else if (__builtin_types_compatible_p(typeof(st), unsigned int)      \
-                || __builtin_types_compatible_p(typeof(st), unsigned short) \
-                || __builtin_types_compatible_p(typeof(st), unsigned char)) \
-               mlog(ML_EXIT, "EXIT: %u\n", (unsigned int) (st));            \
-       else if (__builtin_types_compatible_p(typeof(st), signed int)        \
-                || __builtin_types_compatible_p(typeof(st), signed short)   \
-                || __builtin_types_compatible_p(typeof(st), signed char))   \
-               mlog(ML_EXIT, "EXIT: %d\n", (signed int) (st));              \
-       else if (__builtin_types_compatible_p(typeof(st), long long))        \
-               mlog(ML_EXIT, "EXIT: %lld\n", (long long) (st));             \
-       else                                                                 \
-               mlog(ML_EXIT, "EXIT: %llu\n", (unsigned long long) (st));    \
-} while (0)
-#else
-#define mlog_exit(st) do {                                                  \
-       mlog(ML_EXIT, "EXIT: %lld\n", (long long) (st));                     \
-} while (0)
-#endif
-
-#define mlog_exit_ptr(ptr) do {                                                \
-       mlog(ML_EXIT, "EXIT: %p\n", ptr);                               \
-} while (0)
-
-#define mlog_exit_void() do {                                          \
-       mlog(ML_EXIT, "EXIT\n");                                        \
-} while (0)
-#else
-#define mlog_exit(...)  do { } while (0)
-#define mlog_exit_ptr(...)  do { } while (0)
-#define mlog_exit_void(...)  do { } while (0)
-#endif  /* defined(CONFIG_OCFS2_DEBUG_MASKLOG) */
-
 #define mlog_bug_on_msg(cond, fmt, args...) do {                       \
        if (cond) {                                                     \
                mlog(ML_ERROR, "bug expression: " #cond "\n");          \
 
        ret = 1;
 
 bail:
-       mlog_exit(ret);
-
+       mlog(0, "ret = %d\n", ret);
        return ret;
 }
 
 
        }
 
 bail:
-       mlog_exit(ret);
+       mlog(0, "ret = %d\n", ret);
        return ret;
 }
 
        for (; ra_ptr < ra_max; ra_ptr++)
                brelse(bh_use[ra_ptr]);
 
-       mlog_exit_ptr(ret);
+       mlog(0, "ret = %p\n", ret);
        return ret;
 }
 
                de = (struct ocfs2_dir_entry *)((char *)de + le16_to_cpu(de->rec_len));
        }
 bail:
-       mlog_exit(status);
        return status;
 }
 
         * from ever getting here. */
        retval = -ENOSPC;
 bail:
+       if (retval)
+               mlog_errno(retval);
 
-       mlog_exit(retval);
        return retval;
 }
 
                                      dirent, filldir, NULL);
 
        ocfs2_inode_unlock(inode, lock_level);
+       if (error)
+               mlog_errno(error);
 
 bail_nolock:
-       mlog_exit(error);
 
        return error;
 }
 bail:
        ocfs2_free_dir_lookup_result(&lookup);
 
-       mlog_exit(ret);
+       if (ret)
+               mlog_errno(ret);
        return ret;
 }
 
 bail:
        brelse(new_bh);
 
-       mlog_exit(status);
        return status;
 }
 
 bail:
        if (did_quota && status < 0)
                dquot_free_space_nodirty(dir, ocfs2_clusters_to_bytes(sb, 1));
-       mlog_exit(status);
        return status;
 }
 
 
        brelse(new_bh);
 
-       mlog_exit(status);
        return status;
 }
 
        status = 0;
 bail:
        brelse(bh);
+       if (status)
+               mlog_errno(status);
 
-       mlog_exit(status);
        return status;
 }
 
 
        if (destroy)
                dlm_destroy_recovery_area(dlm, dead_node);
 
-       mlog_exit(status);
        return status;
 }
 
                        kfree(buf);
                if (item)
                        kfree(item);
+               mlog_errno(ret);
        }
 
-       mlog_exit(ret);
        return ret;
 }
 
                dlm_lockres_put(res);
        }
        kfree(data);
-       mlog_exit(ret);
 }
 
 
                        dlm_lock_put(newlock);
        }
 
-       mlog_exit(ret);
        return ret;
 }
 
 
        BUG_ON(len != (OCFS2_LOCK_ID_MAX_LEN - 1));
 
        mlog(0, "built lock resource with name: %s\n", name);
-
-       mlog_exit_void();
 }
 
 static DEFINE_SPINLOCK(ocfs2_dlm_tracking_lock);
        memset(&res->l_lksb, 0, sizeof(res->l_lksb));
 
        res->l_flags = 0UL;
-       mlog_exit_void();
 }
 
 static inline void ocfs2_inc_holders(struct ocfs2_lock_res *lockres,
        default:
                BUG();
        }
-
-       mlog_exit_void();
 }
 
 static inline void ocfs2_dec_holders(struct ocfs2_lock_res *lockres,
        default:
                BUG();
        }
-       mlog_exit_void();
 }
 
 /* WARNING: This function lives in a world where the only three lock
                lockres_clear_flags(lockres, OCFS2_LOCK_BLOCKED);
        }
        lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
-
-       mlog_exit_void();
 }
 
 static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lockres)
        lockres_or_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING);
 
        lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
-
-       mlog_exit_void();
 }
 
 static inline void ocfs2_generic_handle_attach_action(struct ocfs2_lock_res *lockres)
        lockres->l_level = lockres->l_requested;
        lockres_or_flags(lockres, OCFS2_LOCK_ATTACHED);
        lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
-
-       mlog_exit_void();
 }
 
 static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres,
 
        if (needs_downconvert)
                lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED);
-
-       mlog_exit(needs_downconvert);
+       mlog(0, "needs_downconvert = %d\n", needs_downconvert);
        return needs_downconvert;
 }
 
                     "unlock_action %d\n", error, lockres->l_name,
                     lockres->l_unlock_action);
                spin_unlock_irqrestore(&lockres->l_lock, flags);
-               mlog_exit_void();
                return;
        }
 
        lockres->l_unlock_action = OCFS2_UNLOCK_INVALID;
        wake_up(&lockres->l_event);
        spin_unlock_irqrestore(&lockres->l_lock, flags);
-
-       mlog_exit_void();
 }
 
 /*
        spin_unlock_irqrestore(&lockres->l_lock, flags);
 
        wake_up(&lockres->l_event);
-       mlog_exit_void();
 }
 
 /* Note: If we detect another process working on the lock (i.e.,
        mlog(0, "lock %s, return from ocfs2_dlm_lock\n", lockres->l_name);
 
 bail:
-       mlog_exit(ret);
        return ret;
 }
 
                                caller_ip);
        }
 #endif
-       mlog_exit(ret);
        return ret;
 }
 
        if (lockres->l_lockdep_map.key != NULL)
                rwsem_release(&lockres->l_lockdep_map, 1, caller_ip);
 #endif
-       mlog_exit_void();
 }
 
 static int ocfs2_create_new_lock(struct ocfs2_super *osb,
        }
 
 bail:
-       mlog_exit(ret);
        return ret;
 }
 
             (unsigned long long)OCFS2_I(inode)->ip_blkno,
             write ? "EXMODE" : "PRMODE");
 
-       if (ocfs2_mount_local(osb)) {
-               mlog_exit(0);
+       if (ocfs2_mount_local(osb))
                return 0;
-       }
 
        lockres = &OCFS2_I(inode)->ip_rw_lockres;
 
        if (status < 0)
                mlog_errno(status);
 
-       mlog_exit(status);
        return status;
 }
 
 
        if (!ocfs2_mount_local(osb))
                ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level);
-
-       mlog_exit_void();
 }
 
 /*
                mlog_errno(status);
 
 out:
-       mlog_exit(status);
        return status;
 }
 
                                    level, DLM_LKF_NOQUEUE, 0);
 
 out:
-       mlog_exit(status);
        return status;
 }
 
                                     DLM_LOCK_EX);
 
 out:
-       mlog_exit_void();
+       return;
 }
 
 static int ocfs2_flock_handle_signal(struct ocfs2_lock_res *lockres,
 
        if (kick)
                ocfs2_wake_downconvert_thread(osb);
-
-       mlog_exit_void();
 }
 
 #define OCFS2_SEC_BITS   34
 
 out:
        mlog_meta_lvb(0, lockres);
-
-       mlog_exit_void();
 }
 
 static void ocfs2_unpack_timespec(struct timespec *spec,
        ocfs2_unpack_timespec(&inode->i_ctime,
                              be64_to_cpu(lvb->lvb_ictime_packed));
        spin_unlock(&oi->ip_lock);
-
-       mlog_exit_void();
 }
 
 static inline int ocfs2_meta_lvb_is_trustable(struct inode *inode,
 
        status = 1;
 bail:
-       mlog_exit(status);
+       mlog(0, "status %d\n", status);
        return status;
 }
 
        spin_unlock_irqrestore(&lockres->l_lock, flags);
 
        wake_up(&lockres->l_event);
-
-       mlog_exit_void();
 }
 
 /* may or may not return a bh if it went to disk. */
 bail_refresh:
        ocfs2_complete_lock_res_refresh(lockres, status);
 bail:
-       mlog_exit(status);
        return status;
 }
 
        if (local_bh)
                brelse(local_bh);
 
-       mlog_exit(status);
        return status;
 }
 
        } else
                *level = 0;
 
-       mlog_exit(ret);
        return ret;
 }
 
        if (!ocfs2_is_hard_readonly(OCFS2_SB(inode->i_sb)) &&
            !ocfs2_mount_local(osb))
                ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level);
-
-       mlog_exit_void();
 }
 
 int ocfs2_orphan_scan_lock(struct ocfs2_super *osb, u32 *seqno)
                ocfs2_track_lock_refresh(lockres);
        }
 bail:
-       mlog_exit(status);
        return status;
 }
 
                        kthread_stop(osb->dc_task);
        }
 
-       mlog_exit(status);
        return status;
 }
 
        osb->cconn = NULL;
 
        ocfs2_dlm_shutdown_debug(osb);
-
-       mlog_exit_void();
 }
 
 static int ocfs2_drop_lock(struct ocfs2_super *osb,
 
        ocfs2_wait_on_busy_lock(lockres);
 out:
-       mlog_exit(0);
        return 0;
 }
 
        if (err < 0 && !status)
                status = err;
 
-       mlog_exit(status);
        return status;
 }
 
 
        ret = 0;
 bail:
-       mlog_exit(ret);
        return ret;
 }
 
 
        mlog(ML_BASTS, "lockres %s\n", lockres->l_name);
 
-       mlog_exit(ret);
        return ret;
 }
 
                                     gen);
 
 leave:
-       mlog_exit(ret);
+       if (ret)
+               mlog_errno(ret);
        return ret;
 
 leave_requeue:
        spin_unlock_irqrestore(&lockres->l_lock, flags);
        ctl->requeue = 1;
 
-       mlog_exit(0);
        return 0;
 }
 
        lvb->lvb_blocks = cpu_to_be32(oinfo->dqi_gi.dqi_blocks);
        lvb->lvb_free_blk = cpu_to_be32(oinfo->dqi_gi.dqi_free_blk);
        lvb->lvb_free_entry = cpu_to_be32(oinfo->dqi_gi.dqi_free_entry);
-
-       mlog_exit_void();
 }
 
 void ocfs2_qinfo_unlock(struct ocfs2_mem_dqinfo *oinfo, int ex)
 
        if (!ocfs2_is_hard_readonly(osb) && !ocfs2_mount_local(osb))
                ocfs2_cluster_unlock(osb, lockres, level);
-       mlog_exit_void();
 }
 
 static int ocfs2_refresh_qinfo(struct ocfs2_mem_dqinfo *oinfo)
                ocfs2_qinfo_unlock(oinfo, ex);
        ocfs2_complete_lock_res_refresh(lockres, status);
 bail:
-       mlog_exit(status);
        return status;
 }
 
        if (ctl.unblock_action != UNBLOCK_CONTINUE
            && lockres->l_ops->post_unlock)
                lockres->l_ops->post_unlock(osb, lockres);
-
-       mlog_exit_void();
 }
 
 static void ocfs2_schedule_blocked_lock(struct ocfs2_super *osb,
                osb->blocked_lock_count++;
        }
        spin_unlock(&osb->dc_task_lock);
-
-       mlog_exit_void();
 }
 
 static void ocfs2_downconvert_thread_do_work(struct ocfs2_super *osb)
                spin_lock(&osb->dc_task_lock);
        }
        spin_unlock(&osb->dc_task_lock);
-
-       mlog_exit_void();
 }
 
 static int ocfs2_downconvert_thread_lists_empty(struct ocfs2_super *osb)
 
                mlog_errno(PTR_ERR(result));
 
 bail:
-       mlog_exit_ptr(result);
+       mlog(0, "result = %p\n", result);
        return result;
 }
 
        ocfs2_inode_unlock(dir, 0);
 
 bail:
-       mlog_exit_ptr(parent);
+       mlog(0, "parent %p\n", parent);
 
        return parent;
 }
        *max_len = len;
 
 bail:
-       mlog_exit(type);
+       mlog(0, "type = %d\n", type);
        return type;
 }
 
 
        }
 
 out:
-       mlog_exit(rc);
        return rc;
 }
 
 
        }
 
 leave:
-       mlog_exit(status);
        return status;
 }
 
 
        ocfs2_free_file_private(inode, file);
 
-       mlog_exit(0);
-
        return 0;
 }
 
        err = jbd2_journal_force_commit(journal);
 
 bail:
-       mlog_exit(err);
+       if (err)
+               mlog_errno(err);
 
        return (err < 0) ? -EIO : 0;
 }
 out_commit:
        ocfs2_commit_trans(OCFS2_SB(inode->i_sb), handle);
 out:
-       mlog_exit(ret);
        return ret;
 }
 
        }
 
 bail:
-       mlog_exit(status);
        return status;
 }
 
 out_commit:
        ocfs2_commit_trans(osb, handle);
 out:
-
-       mlog_exit(status);
        return status;
 }
 
        if (!status && OCFS2_I(inode)->ip_clusters == 0)
                status = ocfs2_try_remove_refcount_tree(inode, di_bh);
 
-       mlog_exit(status);
        return status;
 }
 
        brelse(bh);
        bh = NULL;
 
-       mlog_exit(status);
        return status;
 }
 
                        mlog_errno(status);
        }
 
-       mlog_exit(status);
        return status;
 }
 
        stat->blksize = osb->s_clustersize;
 
 bail:
-       mlog_exit(err);
-
        return err;
 }
 
 
        ocfs2_inode_unlock(inode, 0);
 out:
-       mlog_exit(ret);
        return ret;
 }
 
 out_trans:
        ocfs2_commit_trans(osb, handle);
 out:
-       mlog_exit(ret);
        return ret;
 }
 
 
        if (written)
                ret = written;
-       mlog_exit(ret);
        return ret;
 }
 
                balance_dirty_pages_ratelimited_nr(mapping, nr_pages);
        }
 
-       mlog_exit(ret);
        return ret;
 }
 
        ret = generic_file_splice_read(in, ppos, pipe, len, flags);
 
 bail:
-       mlog_exit(ret);
        return ret;
 }
 
        }
        if (rw_level != -1)
                ocfs2_rw_unlock(inode, rw_level);
-       mlog_exit(ret);
 
        return ret;
 }
 
        if (!IS_ERR(inode)) {
                mlog(0, "returning inode with number %llu\n",
                     (unsigned long long)OCFS2_I(inode)->ip_blkno);
-               mlog_exit_ptr(inode);
+               mlog(0, "inode %p\n", inode);
        }
 
        return inode;
 
        ret = 1;
 bail:
-       mlog_exit(ret);
        return ret;
 }
 
                lockdep_set_class(&OCFS2_I(inode)->ip_alloc_sem,
                                  &ocfs2_file_ip_alloc_sem_key);
 
-       mlog_exit(0);
        return 0;
 }
 
        if (S_ISDIR(inode->i_mode))
                ocfs2_resv_set_type(&OCFS2_I(inode)->ip_la_data_resv,
                                    OCFS2_RESV_FLAG_DIR);
-       mlog_exit_void();
 }
 
 static int ocfs2_read_locked_inode(struct inode *inode,
        if (args && bh)
                brelse(bh);
 
-       mlog_exit(status);
        return status;
 }
 
 out:
        if (handle)
                ocfs2_commit_trans(osb, handle);
-       mlog_exit(status);
        return status;
 }
 
 bail_unblock:
        ocfs2_unblock_signals(&oldset);
 bail:
-       mlog_exit_void();
+       return;
 }
 
 static void ocfs2_clear_inode(struct inode *inode)
         */
        jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal,
                                       &oi->ip_jinode);
-
-       mlog_exit_void();
 }
 
 void ocfs2_evict_inode(struct inode *inode)
        else
                res = generic_drop_inode(inode);
 
-       mlog_exit_void();
        return res;
 }
 
        }
        ocfs2_inode_unlock(inode, 0);
 bail:
-       mlog_exit(status);
-
        return status;
 }
 
 
        ocfs2_journal_dirty(handle, bh);
 leave:
-       mlog_exit(status);
        return status;
 }
 
 
        *flags = OCFS2_I(inode)->ip_attr;
        ocfs2_inode_unlock(inode, 0);
 
-       mlog_exit(status);
        return status;
 }
 
 
        brelse(bh);
 
-       mlog_exit(status);
        return status;
 }
 
 
        ocfs2_wake_downconvert_thread(osb);
        wake_up(&journal->j_checkpointed);
 finally:
-       mlog_exit(status);
        return status;
 }
 
 
        status = 0;
 bail:
-
-       mlog_exit(status);
        return status;
 }
 
                mlog(ML_ERROR, "Error %d getting %d access to buffer!\n",
                     status, type);
 
-       mlog_exit(status);
        return status;
 }
 
 
        status = jbd2_journal_dirty_metadata(handle, bh);
        BUG_ON(status);
-
-       mlog_exit_void();
 }
 
 #define OCFS2_DEFAULT_COMMIT_INTERVAL  (HZ * JBD2_DEFAULT_MAX_COMMIT_AGE)
                }
        }
 
-       mlog_exit(status);
        return status;
 }
 
        if (status < 0)
                mlog_errno(status);
 
-       mlog_exit(status);
        return status;
 }
 
 done:
        if (inode)
                iput(inode);
-       mlog_exit_void();
 }
 
 static void ocfs2_clear_journal_error(struct super_block *sb,
                osb->commit_task = NULL;
 
 done:
-       mlog_exit(status);
        return status;
 }
 
                mlog_errno(status);
 
 bail:
-       mlog_exit(status);
        return status;
 }
 
 bail:
        for(i = 0; i < CONCURRENT_JOURNAL_FILL; i++)
                brelse(bhs[i]);
-       mlog_exit(status);
        return status;
 }
 
        }
 
        mlog(0, "Recovery completion\n");
-       mlog_exit_void();
 }
 
 /* NOTE: This function always eats your references to la_dinode and
        if (rm_quota)
                kfree(rm_quota);
 
-       mlog_exit(status);
        /* no one is callint kthread_stop() for us so the kthread() api
         * requires that we call do_exit().  And it isn't exported, but
         * complete_and_exit() seems to be a minimal wrapper around it. */
 out:
        mutex_unlock(&osb->recovery_lock);
        wake_up(&osb->recovery_event);
-
-       mlog_exit_void();
 }
 
 static int ocfs2_read_journal_inode(struct ocfs2_super *osb,
 
        brelse(bh);
 
-       mlog_exit(status);
        return status;
 }
 
        status = 0;
 done:
 
-       mlog_exit(status);
        return status;
 }
 
 
        status = 0;
 bail:
-       mlog_exit(status);
        return status;
 }
 
 
 
        mlog(0, "Local alloc window bits = %d\n", osb->local_alloc_bits);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 
        if (alloc_copy)
                kfree(alloc_copy);
-
-       mlog_exit_void();
 }
 
 /*
                iput(inode);
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 out:
        if (!status)
                ocfs2_init_steal_slots(osb);
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        mlog(0, "bits=%d, slot=%d, ret=%d\n", bits_wanted, osb->slot_num,
             status);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        ocfs2_journal_dirty(handle, osb->local_alloc_bh);
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        for (i = 0; i < le16_to_cpu(la->la_size); i++)
                count += hweight8(buffer[i]);
 
-       mlog_exit(count);
+       mlog(0, "count %u\n", count);
        return count;
 }
 
        if (local_resv)
                ocfs2_resv_discard(resmap, resv);
 
-       mlog_exit(bitoff);
+       mlog(0, "bitoff %d\n", bitoff);
        return bitoff;
 }
 
        la->la_bm_off = 0;
        for(i = 0; i < le16_to_cpu(la->la_size); i++)
                la->la_bitmap[i] = 0;
-
-       mlog_exit_void();
 }
 
 #if 0
        }
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                *ac = NULL;
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        mlog(0, "window bits = %u\n", le32_to_cpu(alloc->id1.bitmap1.i_total));
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        if (ac)
                ocfs2_free_alloc_context(ac);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 
        ret = filemap_fault(area, vmf);
        ocfs2_unblock_signals(&oldset);
 
-       mlog_exit_ptr(vmf->page);
+       mlog(0, "%p\n", vmf->page);
        return ret;
 }
 
 
 
 bail:
 
-       mlog_exit_ptr(ret);
+       mlog(0, "%p\n", ret);
 
        return ret;
 }
                iput(inode);
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
 
        return status;
 }
                }
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        mlog(0, "(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry, mode,
             dentry->d_name.len, dentry->d_name.name);
        ret = ocfs2_mknod(dir, dentry, mode | S_IFDIR, 0);
-       mlog_exit(ret);
+       if (ret)
+               mlog_errno(ret);
 
        return ret;
 }
        mlog(0, "(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry, mode,
             dentry->d_name.len, dentry->d_name.name);
        ret = ocfs2_mknod(dir, dentry, mode | S_IFREG, 0);
-       mlog_exit(ret);
+       if (ret)
+               mlog_errno(ret);
 
        return ret;
 }
 
        ocfs2_free_dir_lookup_result(&lookup);
 
-       mlog_exit(err);
+       if (err)
+               mlog_errno(err);
 
        return err;
 }
        ocfs2_free_dir_lookup_result(&orphan_insert);
        ocfs2_free_dir_lookup_result(&lookup);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
 
        return status;
 }
        }
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        brelse(old_dir_bh);
        brelse(new_dir_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
 
        return status;
 }
                kfree(bhs);
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                iput(inode);
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
 
        return status;
 }
 
        status = 0;
 bail:
-       mlog_exit(status);
+       if (status < 0)
+               mlog_errno(status);
        return status;
 }
 
                iput(orphan_dir_inode);
        }
 
-       mlog_exit(ret);
+       if (ret)
+               mlog_errno(ret);
        return ret;
 }
 
 leave:
        brelse(orphan_dir_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 leave:
        ocfs2_free_dir_lookup_result(&lookup);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 
        ocfs2_free_dir_lookup_result(&lookup);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
 
        return status;
 }
 
                           msecs_to_jiffies(oinfo->dqi_syncms));
 
 out_err:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 out_unlock:
        ocfs2_unlock_global_qf(oinfo, 0);
 out_ilock:
        ocfs2_unlock_global_qf(oinfo, 1);
 out:
-       mlog_exit(status);
        return status;
 }
 
        mutex_unlock(&sb_dqopt(dquot->dq_sb)->dqio_mutex);
        ocfs2_commit_trans(osb, handle);
 out:
-       mlog_exit(status);
        return status;
 }
 
        ocfs2_unlock_global_qf(oinfo, 1);
 out:
        mutex_unlock(&dquot->dq_lock);
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        set_bit(DQ_ACTIVE_B, &dquot->dq_flags);
 out:
        mutex_unlock(&dquot->dq_lock);
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 out_ilock:
        ocfs2_unlock_global_qf(oinfo, 1);
 out:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 out_ilock:
        ocfs2_unlock_global_qf(oinfo, 1);
 out:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 
        }
        if (status < 0)
                free_recovery_list(&(rec->r_list[type]));
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 
                backups++;
        }
 
-       mlog_exit_void();
        return backups;
 }
 
                le16_add_cpu(&group->bg_free_bits_count, -1 * num_bits);
        }
 out:
-       mlog_exit(ret);
+       if (ret)
+               mlog_errno(ret);
        return ret;
 }
 
        iput(main_bm_inode);
 
 out:
-       mlog_exit_void();
        return ret;
 }
 
        iput(main_bm_inode);
 
 out:
-       mlog_exit_void();
        return ret;
 }
 
                mlog_errno(status);
 
 bail:
-       mlog_exit(status);
        return status;
 }
 
 
         * allocation time. */
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 
        brelse(bg_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 bail:
        brelse(bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                *ac = NULL;
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                *ac = NULL;
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                *ac = NULL;
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        ocfs2_journal_dirty(handle, group_bh);
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                prev_bg->bg_next_group = cpu_to_le64(prev_bg_ptr);
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        brelse(group_bh);
        brelse(prev_group_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        }
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        *num_bits = res.sr_bits;
        status = 0;
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        ocfs2_save_inode_ac_group(dir, ac);
        status = 0;
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        ac->ac_bits_given += *num_clusters;
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 bail:
        brelse(group_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
                                         num_clusters);
 
 out:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 bail:
        brelse(inode_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
 bail:
        brelse(group_bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        iput(inode_alloc_inode);
        brelse(alloc_bh);
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        }
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        }
 
 bail:
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        }
 
        if (!osb->local_system_inodes)
-               goto out;
+               return;
 
        for (i = 0; i < NUM_LOCAL_SYSTEM_INODES * osb->max_slots; i++) {
                if (osb->local_system_inodes[i]) {
 
        kfree(osb->local_system_inodes);
        osb->local_system_inodes = NULL;
-
-out:
-       mlog_exit(0);
 }
 
 /* We're allocating fs objects, use GFP_NOFS */
                        mlog_errno(status);
                        atomic_set(&osb->vol_state, VOLUME_DISABLED);
                        wake_up(&osb->osb_mount_event);
-                       mlog_exit(status);
                        return status;
                }
        }
        /* Start this when the mount is almost sure of being successful */
        ocfs2_orphan_scan_start(osb);
 
-       mlog_exit(status);
        return status;
 
 read_super_error:
                ocfs2_dismount_volume(sb, 1);
        }
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        status = 1;
 
 bail:
-       mlog_exit(status);
        return status;
 }
 
                ocfs2_quota_shutdown();
                ocfs2_free_mem_caches();
                exit_ocfs2_uptodate_cache();
+               mlog_errno(status);
        }
 
-       mlog_exit(status);
-
        if (status >= 0) {
                return register_filesystem(&ocfs2_fs_type);
        } else
        unregister_filesystem(&ocfs2_fs_type);
 
        exit_ocfs2_uptodate_cache();
-
-       mlog_exit_void();
 }
 
 static void ocfs2_put_super(struct super_block *sb)
 
        ocfs2_sync_blockdev(sb);
        ocfs2_dismount_volume(sb, 0);
-
-       mlog_exit_void();
 }
 
 static int ocfs2_statfs(struct dentry *dentry, struct kstatfs *buf)
        if (inode)
                iput(inode);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
 
        return status;
 }
        if (unlock_super)
                ocfs2_super_unlock(osb, 1);
 
-       mlog_exit(status);
        return status;
 }
 
        }
 
 bail:
-       mlog_exit(status);
        return status;
 }
 
        }
 
 out:
-       mlog_exit(status);
+       if (status && status != -EAGAIN)
+               mlog_errno(status);
        return status;
 }
 
        if (local_alloc)
                kfree(local_alloc);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return status;
 }
 
        kfree(osb->uuid_str);
        ocfs2_put_dlm_debug(osb->osb_dlm_debug);
        memset(osb, 0, sizeof(struct ocfs2_super));
-
-       mlog_exit_void();
 }
 
 /* Put OCFS2 into a readonly state, or (if the user specifies it),
 
        fe = (struct ocfs2_dinode *) (*bh)->b_data;
        link = (char *) fe->id2.i_symlink;
 bail:
-       mlog_exit(status);
 
        return link;
 }
 
        brelse(bh);
 out:
-       mlog_exit(ret);
+       if (ret < 0)
+               mlog_errno(ret);
        return ret;
 }
 
        nd_set_link(nd, status ? ERR_PTR(status) : link);
        brelse(bh);
 
-       mlog_exit(status);
+       if (status)
+               mlog_errno(status);
        return NULL;
 }
 
 
 
 
 out:
-       mlog_exit(ret);
        return ret;
 }
 
                mlog_errno(ret);
 
 out:
-       mlog_exit(ret);
        return ret;
 }