Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70393313 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dave Chinner
Browse files

xfs: saner xfs_trans_commit interface



The flags argument to xfs_trans_commit is not useful for most callers, as
a commit of a transaction without a permanent log reservation must pass
0 here, and all callers for a transaction with a permanent log reservation
except for xfs_trans_roll must pass XFS_TRANS_RELEASE_LOG_RES.  So remove
the flags argument from the public xfs_trans_commit interfaces, and
introduce low-level __xfs_trans_commit variant just for xfs_trans_roll
that regrants a log reservation instead of releasing it.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
parent 4906e215
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -320,8 +320,7 @@ xfs_attr_set(
				xfs_trans_ichgtime(args.trans, dp,
							XFS_ICHGTIME_CHG);
			}
			err2 = xfs_trans_commit(args.trans,
						 XFS_TRANS_RELEASE_LOG_RES);
			err2 = xfs_trans_commit(args.trans);
			xfs_iunlock(dp, XFS_ILOCK_EXCL);

			return error ? error : err2;
@@ -383,7 +382,7 @@ xfs_attr_set(
	 * Commit the last in the sequence of transactions.
	 */
	xfs_trans_log_inode(args.trans, dp, XFS_ILOG_CORE);
	error = xfs_trans_commit(args.trans, XFS_TRANS_RELEASE_LOG_RES);
	error = xfs_trans_commit(args.trans);
	xfs_iunlock(dp, XFS_ILOCK_EXCL);

	return error;
@@ -499,7 +498,7 @@ xfs_attr_remove(
	 * Commit the last in the sequence of transactions.
	 */
	xfs_trans_log_inode(args.trans, dp, XFS_ILOG_CORE);
	error = xfs_trans_commit(args.trans, XFS_TRANS_RELEASE_LOG_RES);
	error = xfs_trans_commit(args.trans);
	xfs_iunlock(dp, XFS_ILOCK_EXCL);

	return error;
+2 −3
Original line number Diff line number Diff line
@@ -1215,7 +1215,7 @@ xfs_bmap_add_attrfork(
	error = xfs_bmap_finish(&tp, &flist, &committed);
	if (error)
		goto bmap_cancel;
	error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);
	error = xfs_trans_commit(tp);
	xfs_iunlock(ip, XFS_ILOCK_EXCL);
	return error;

@@ -5926,8 +5926,7 @@ xfs_bmap_split_extent(
	if (error)
		goto out;

	return xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);

	return xfs_trans_commit(tp);

out:
	xfs_trans_cancel(tp);
+1 −1
Original line number Diff line number Diff line
@@ -799,5 +799,5 @@ xfs_sync_sb(
	xfs_log_sb(tp);
	if (wait)
		xfs_trans_set_sync(tp);
	return xfs_trans_commit(tp, 0);
	return xfs_trans_commit(tp);
}
+0 −5
Original line number Diff line number Diff line
@@ -181,11 +181,6 @@ int xfs_log_calc_minimum_size(struct xfs_mount *);
#define XFS_TRANS_RESERVE	0x20    /* OK to use reserved data blocks */
#define XFS_TRANS_FREEZE_PROT	0x40	/* Transaction has elevated writer
					   count in superblock */
/*
 * Values for call flags parameter.
 */
#define	XFS_TRANS_RELEASE_LOG_RES	0x4

/*
 * Field values for xfs_trans_mod_sb.
 */
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ xfs_setfilesize(
	xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
	xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);

	return xfs_trans_commit(tp, 0);
	return xfs_trans_commit(tp);
}

STATIC int
Loading