struct transaction_chp_stats_s *stats;
        transaction_t *transaction;
        journal_t *journal;
-       int ret = 0;
 
        JBUFFER_TRACE(jh, "entry");
 
-       if ((transaction = jh->b_cp_transaction) == NULL) {
+       transaction = jh->b_cp_transaction;
+       if (!transaction) {
                JBUFFER_TRACE(jh, "not on transaction");
-               goto out;
+               return 0;
        }
        journal = transaction->t_journal;
 
        jh->b_cp_transaction = NULL;
        jbd2_journal_put_journal_head(jh);
 
-       if (transaction->t_checkpoint_list != NULL ||
-           transaction->t_checkpoint_io_list != NULL)
-               goto out;
+       /* Is this transaction empty? */
+       if (transaction->t_checkpoint_list || transaction->t_checkpoint_io_list)
+               return 0;
 
        /*
         * There is one special case to worry about: if we have just pulled the
         * See the comment at the end of jbd2_journal_commit_transaction().
         */
        if (transaction->t_state != T_FINISHED)
-               goto out;
+               return 0;
 
-       /* OK, that was the last buffer for the transaction: we can now
-          safely remove this transaction from the log */
+       /*
+        * OK, that was the last buffer for the transaction, we can now
+        * safely remove this transaction from the log.
+        */
        stats = &transaction->t_chp_stats;
        if (stats->cs_chp_time)
                stats->cs_chp_time = jbd2_time_diff(stats->cs_chp_time,
 
        __jbd2_journal_drop_transaction(journal, transaction);
        jbd2_journal_free_transaction(transaction);
-       ret = 1;
-out:
-       return ret;
+       return 1;
 }
 
 /*