xfs: merge xlog_commit_record with xlog_write_done
authorDave Chinner <dchinner@redhat.com>
Thu, 26 Mar 2020 01:18:23 +0000 (18:18 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Fri, 27 Mar 2020 15:32:54 +0000 (08:32 -0700)
xlog_write_done() is just a thin wrapper around xlog_commit_record(), so
they can be merged together easily.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_log.c
fs/xfs/xfs_log_cil.c
fs/xfs/xfs_log_priv.h

index a22962e..ccbc9d8 100644 (file)
 kmem_zone_t    *xfs_log_ticket_zone;
 
 /* Local miscellaneous function prototypes */
-STATIC int
-xlog_commit_record(
-       struct xlog             *log,
-       struct xlog_ticket      *ticket,
-       struct xlog_in_core     **iclog,
-       xfs_lsn_t               *commitlsnp);
-
 STATIC struct xlog *
 xlog_alloc_log(
        struct xfs_mount        *mp,
@@ -478,22 +471,6 @@ out_error:
  *             marked as with WANT_SYNC.
  */
 
-/*
- * Write a commit record to the log to close off a running log write.
- */
-int
-xlog_write_done(
-       struct xlog             *log,
-       struct xlog_ticket      *ticket,
-       struct xlog_in_core     **iclog,
-       xfs_lsn_t               *lsn)
-{
-       if (XLOG_FORCED_SHUTDOWN(log))
-               return -EIO;
-
-       return xlog_commit_record(log, ticket, iclog, lsn);
-}
-
 static bool
 __xlog_state_release_iclog(
        struct xlog             *log,
@@ -1463,20 +1440,17 @@ out:
        return ERR_PTR(error);
 }      /* xlog_alloc_log */
 
-
 /*
  * Write out the commit record of a transaction associated with the given
- * ticket Return the lsn of the commit record.
+ * ticket to close off a running log write. Return the lsn of the commit record.
  */
-STATIC int
+int
 xlog_commit_record(
        struct xlog             *log,
        struct xlog_ticket      *ticket,
        struct xlog_in_core     **iclog,
-       xfs_lsn_t               *commitlsnp)
+       xfs_lsn_t               *lsn)
 {
-       struct xfs_mount *mp = log->l_mp;
-       int     error;
        struct xfs_log_iovec reg = {
                .i_addr = NULL,
                .i_len = 0,
@@ -1486,12 +1460,15 @@ xlog_commit_record(
                .lv_niovecs = 1,
                .lv_iovecp = &reg,
        };
+       int     error;
 
-       ASSERT_ALWAYS(iclog);
-       error = xlog_write(log, &vec, ticket, commitlsnp, iclog,
-                                       XLOG_COMMIT_TRANS, false);
+       if (XLOG_FORCED_SHUTDOWN(log))
+               return -EIO;
+
+       error = xlog_write(log, &vec, ticket, lsn, iclog, XLOG_COMMIT_TRANS,
+                          false);
        if (error)
-               xfs_force_shutdown(mp, SHUTDOWN_LOG_IO_ERROR);
+               xfs_force_shutdown(log->l_mp, SHUTDOWN_LOG_IO_ERROR);
        return error;
 }
 
index 0ae187f..e3dd405 100644 (file)
@@ -839,7 +839,7 @@ restart:
        }
        spin_unlock(&cil->xc_push_lock);
 
-       error = xlog_write_done(log, tic, &commit_iclog, &commit_lsn);
+       error = xlog_commit_record(log, tic, &commit_iclog, &commit_lsn);
        if (error)
                goto out_abort_free_ticket;
 
index 0941b46..f4a5446 100644 (file)
@@ -441,7 +441,7 @@ int xlog_write(struct xlog *log, struct xfs_log_vec *log_vector,
                struct xlog_ticket *tic, xfs_lsn_t *start_lsn,
                struct xlog_in_core **commit_iclog, uint flags,
                bool need_start_rec);
-int    xlog_write_done(struct xlog *log, struct xlog_ticket *ticket,
+int    xlog_commit_record(struct xlog *log, struct xlog_ticket *ticket,
                struct xlog_in_core **iclog, xfs_lsn_t *lsn);
 void   xfs_log_ticket_ungrant(struct xlog *log, struct xlog_ticket *ticket);
 void   xfs_log_ticket_regrant(struct xlog *log, struct xlog_ticket *ticket);