xfs: return committed status from xfs_trans_roll()
authorBrian Foster <bfoster@redhat.com>
Tue, 18 Aug 2015 23:50:13 +0000 (09:50 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 18 Aug 2015 23:50:13 +0000 (09:50 +1000)
Some callers need to make error handling decisions based on whether
the current transaction successfully committed or not. Rename
xfs_trans_roll(), add a new parameter and provide a wrapper to
preserve existing callers.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_trans.c
fs/xfs/xfs_trans.h

index 0582a27107d4ee3dcd2e57c6739405a96280d79d..a0ab1dae9c312ec0b67fe83a1d2936e7d716b339 100644 (file)
@@ -1019,9 +1019,10 @@ xfs_trans_cancel(
  * chunk we've been working on and get a new transaction to continue.
  */
 int
-xfs_trans_roll(
+__xfs_trans_roll(
        struct xfs_trans        **tpp,
-       struct xfs_inode        *dp)
+       struct xfs_inode        *dp,
+       int                     *committed)
 {
        struct xfs_trans        *trans;
        struct xfs_trans_res    tres;
@@ -1052,6 +1053,7 @@ xfs_trans_roll(
        if (error)
                return error;
 
+       *committed = 1;
        trans = *tpp;
 
        /*
@@ -1074,3 +1076,12 @@ xfs_trans_roll(
                xfs_trans_ijoin(trans, dp, 0);
        return 0;
 }
+
+int
+xfs_trans_roll(
+       struct xfs_trans        **tpp,
+       struct xfs_inode        *dp)
+{
+       int                     committed = 0;
+       return __xfs_trans_roll(tpp, dp, &committed);
+}
index f48e839334af651c8ce8edea0779d2723fa7f4a9..ba1660b502a504a25a59d94bbd15c5ce2e9ed8fc 100644 (file)
@@ -225,6 +225,7 @@ void                xfs_trans_log_efd_extent(xfs_trans_t *,
                                         xfs_fsblock_t,
                                         xfs_extlen_t);
 int            xfs_trans_commit(struct xfs_trans *);
+int            __xfs_trans_roll(struct xfs_trans **, struct xfs_inode *, int *);
 int            xfs_trans_roll(struct xfs_trans **, struct xfs_inode *);
 void           xfs_trans_cancel(xfs_trans_t *);
 int            xfs_trans_ail_init(struct xfs_mount *);