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

Commit 20026d92 authored by Dave Chinner's avatar Dave Chinner
Browse files

xfs: kill the unused XFS_QMOPT_* flush flags V2



dquots are never flushed asynchronously. Remove the flag and the
async write support from the flush function. Make the default flush
a delwri flush to make the inode flush code, which leaves the
XFS_QMOPT_SYNC the only flag remaining.  Convert that to use
SYNC_WAIT instead, just like the inode flush code.

V2:
- just pass flush flags straight through

Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 7d6a7bde
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -1187,7 +1187,7 @@ xfs_qm_dqflush(
	 * block, nada.
	 */
	if (!XFS_DQ_IS_DIRTY(dqp) ||
	    (!(flags & XFS_QMOPT_SYNC) && atomic_read(&dqp->q_pincount) > 0)) {
	    (!(flags & SYNC_WAIT) && atomic_read(&dqp->q_pincount) > 0)) {
		xfs_dqfunlock(dqp);
		return 0;
	}
@@ -1251,18 +1251,17 @@ xfs_qm_dqflush(
		xfs_log_force(mp, 0);
	}

	if (flags & XFS_QMOPT_DELWRI) {
		xfs_bdwrite(mp, bp);
	} else {
	if (flags & SYNC_WAIT)
		error = xfs_bwrite(mp, bp);
	}
	else
		xfs_bdwrite(mp, bp);

	trace_xfs_dqflush_done(dqp);

	/*
	 * dqp is still locked, but caller is free to unlock it now.
	 */
	return (error);
	return error;

}

@@ -1443,7 +1442,7 @@ xfs_qm_dqpurge(
		 * We don't care about getting disk errors here. We need
		 * to purge this dquot anyway, so we go ahead regardless.
		 */
		error = xfs_qm_dqflush(dqp, XFS_QMOPT_SYNC);
		error = xfs_qm_dqflush(dqp, SYNC_WAIT);
		if (error)
			xfs_fs_cmn_err(CE_WARN, mp,
				"xfs_qm_dqpurge: dquot %p flush failed", dqp);
+1 −1
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ xfs_qm_dquot_logitem_push(
	 * lock without sleeping, then there must not have been
	 * anyone in the process of flushing the dquot.
	 */
	error = xfs_qm_dqflush(dqp, XFS_QMOPT_DELWRI);
	error = xfs_qm_dqflush(dqp, 0);
	if (error)
		xfs_fs_cmn_err(CE_WARN, dqp->q_mount,
			"xfs_qm_dquot_logitem_push: push error %d on dqp %p",
+6 −8
Original line number Diff line number Diff line
@@ -450,7 +450,7 @@ xfs_qm_unmount_quotas(
STATIC int
xfs_qm_dqflush_all(
	xfs_mount_t	*mp,
	int		flags)
	int		sync_mode)
{
	int		recl;
	xfs_dquot_t	*dqp;
@@ -486,7 +486,7 @@ again:
		 * across a disk write.
		 */
		xfs_qm_mplist_unlock(mp);
		error = xfs_qm_dqflush(dqp, flags);
		error = xfs_qm_dqflush(dqp, sync_mode);
		xfs_dqunlock(dqp);
		if (error)
			return error;
@@ -926,13 +926,11 @@ xfs_qm_sync(
{
	int		recl, restarts;
	xfs_dquot_t	*dqp;
	uint		flush_flags;
	int		error;

	if (!XFS_IS_QUOTA_RUNNING(mp) || !XFS_IS_QUOTA_ON(mp))
		return 0;

	flush_flags = (flags & SYNC_WAIT) ? XFS_QMOPT_SYNC : XFS_QMOPT_DELWRI;
	restarts = 0;

  again:
@@ -992,7 +990,7 @@ xfs_qm_sync(
		 * across a disk write
		 */
		xfs_qm_mplist_unlock(mp);
		error = xfs_qm_dqflush(dqp, flush_flags);
		error = xfs_qm_dqflush(dqp, flags);
		xfs_dqunlock(dqp);
		if (error && XFS_FORCED_SHUTDOWN(mp))
			return 0;	/* Need to prevent umount failure */
@@ -1796,7 +1794,7 @@ xfs_qm_quotacheck(
	 * successfully.
	 */
	if (!error)
		error = xfs_qm_dqflush_all(mp, XFS_QMOPT_DELWRI);
		error = xfs_qm_dqflush_all(mp, 0);

	/*
	 * We can get this error if we couldn't do a dquot allocation inside
@@ -2018,7 +2016,7 @@ xfs_qm_shake_freelist(
			 * We flush it delayed write, so don't bother
			 * releasing the mplock.
			 */
			error = xfs_qm_dqflush(dqp, XFS_QMOPT_DELWRI);
			error = xfs_qm_dqflush(dqp, 0);
			if (error) {
				xfs_fs_cmn_err(CE_WARN, dqp->q_mount,
			"xfs_qm_dqflush_all: dquot %p flush failed", dqp);
@@ -2201,7 +2199,7 @@ xfs_qm_dqreclaim_one(void)
			 * We flush it delayed write, so don't bother
			 * releasing the freelist lock.
			 */
			error = xfs_qm_dqflush(dqp, XFS_QMOPT_DELWRI);
			error = xfs_qm_dqflush(dqp, 0);
			if (error) {
				xfs_fs_cmn_err(CE_WARN, dqp->q_mount,
			"xfs_qm_dqreclaim: dquot %p flush failed", dqp);
+1 −7
Original line number Diff line number Diff line
@@ -222,16 +222,10 @@ typedef struct xfs_qoff_logformat {
#define XFS_QMOPT_DELRTBCOUNT	0x0400000
#define XFS_QMOPT_RES_INOS	0x0800000

/*
 * flags for dqflush and dqflush_all.
 */
#define XFS_QMOPT_SYNC		0x1000000
#define XFS_QMOPT_DELWRI	0x4000000

/*
 * flags for dqalloc.
 */
#define XFS_QMOPT_INHERIT	0x8000000
#define XFS_QMOPT_INHERIT	0x1000000

/*
 * flags to xfs_trans_mod_dquot.