xfs: use xfs_trans_getsb in xfs_sync_sb_buf
authorEric Sandeen <sandeen@redhat.com>
Tue, 5 Jun 2018 00:29:09 +0000 (17:29 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Tue, 5 Jun 2018 01:25:05 +0000 (18:25 -0700)
Use xfs_trans_getsb rather than reaching right in for
mp->m_sb_bp; I think this is more correct, and it facilitates
building this libxfs code in userspace as well.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_sb.c

index d485e14..b5dca3c 100644 (file)
@@ -970,14 +970,16 @@ xfs_sync_sb_buf(
        struct xfs_mount        *mp)
 {
        struct xfs_trans        *tp;
+       struct xfs_buf          *bp;
        int                     error;
 
        error = xfs_trans_alloc(mp, &M_RES(mp)->tr_sb, 0, 0, 0, &tp);
        if (error)
                return error;
 
+       bp = xfs_trans_getsb(tp, mp, 0);
        xfs_log_sb(tp);
-       xfs_trans_bhold(tp, mp->m_sb_bp);
+       xfs_trans_bhold(tp, bp);
        xfs_trans_set_sync(tp);
        error = xfs_trans_commit(tp);
        if (error)
@@ -985,9 +987,9 @@ xfs_sync_sb_buf(
        /*
         * write out the sb buffer to get the changes to disk
         */
-       error = xfs_bwrite(mp->m_sb_bp);
+       error = xfs_bwrite(bp);
 out:
-       xfs_buf_relse(mp->m_sb_bp);
+       xfs_buf_relse(bp);
        return error;
 }