diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-12-06 16:58:10 -0500 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2011-12-12 17:31:01 -0500 |
commit | fdedf28b9492d69976110d12cc0d02d33c8ea7ea (patch) | |
tree | c7d390c58afa3fd342efadca88e3991c8cb5142f /fs | |
parent | b39342134a6ec72778ffc2ddbd3c0faa10c64676 (diff) |
xfs: untangle SYNC_WAIT and SYNC_TRYLOCK meanings for xfs_qm_dqflush
Only skip pinned dquots if SYNC_TRYLOCK is specified, and adjust the callers
to keep the behaviour unchanged.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/xfs_dquot.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_dquot_item.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_qm.c | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c index 25d7280e9f6b..9aef727a48b2 100644 --- a/fs/xfs/xfs_dquot.c +++ b/fs/xfs/xfs_dquot.c | |||
@@ -1169,7 +1169,7 @@ xfs_qm_dqflush( | |||
1169 | * If not dirty, or it's pinned and we are not supposed to block, nada. | 1169 | * If not dirty, or it's pinned and we are not supposed to block, nada. |
1170 | */ | 1170 | */ |
1171 | if (!XFS_DQ_IS_DIRTY(dqp) || | 1171 | if (!XFS_DQ_IS_DIRTY(dqp) || |
1172 | (!(flags & SYNC_WAIT) && atomic_read(&dqp->q_pincount) > 0)) { | 1172 | ((flags & SYNC_TRYLOCK) && atomic_read(&dqp->q_pincount) > 0)) { |
1173 | xfs_dqfunlock(dqp); | 1173 | xfs_dqfunlock(dqp); |
1174 | return 0; | 1174 | return 0; |
1175 | } | 1175 | } |
diff --git a/fs/xfs/xfs_dquot_item.c b/fs/xfs/xfs_dquot_item.c index 79da711e5dd2..3956e1bb7c07 100644 --- a/fs/xfs/xfs_dquot_item.c +++ b/fs/xfs/xfs_dquot_item.c | |||
@@ -133,7 +133,7 @@ xfs_qm_dquot_logitem_push( | |||
133 | * lock without sleeping, then there must not have been | 133 | * lock without sleeping, then there must not have been |
134 | * anyone in the process of flushing the dquot. | 134 | * anyone in the process of flushing the dquot. |
135 | */ | 135 | */ |
136 | error = xfs_qm_dqflush(dqp, 0); | 136 | error = xfs_qm_dqflush(dqp, SYNC_TRYLOCK); |
137 | if (error) | 137 | if (error) |
138 | xfs_warn(dqp->q_mount, "%s: push error %d on dqp %p", | 138 | xfs_warn(dqp->q_mount, "%s: push error %d on dqp %p", |
139 | __func__, error, dqp); | 139 | __func__, error, dqp); |
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c index 0bbb1a41998b..93cafacbed3c 100644 --- a/fs/xfs/xfs_qm.c +++ b/fs/xfs/xfs_qm.c | |||
@@ -1661,7 +1661,7 @@ xfs_qm_quotacheck( | |||
1661 | * successfully. | 1661 | * successfully. |
1662 | */ | 1662 | */ |
1663 | if (!error) | 1663 | if (!error) |
1664 | error = xfs_qm_dqflush_all(mp, 0); | 1664 | error = xfs_qm_dqflush_all(mp, SYNC_TRYLOCK); |
1665 | 1665 | ||
1666 | /* | 1666 | /* |
1667 | * We can get this error if we couldn't do a dquot allocation inside | 1667 | * We can get this error if we couldn't do a dquot allocation inside |
@@ -1874,7 +1874,7 @@ again: | |||
1874 | * We flush it delayed write, so don't bother | 1874 | * We flush it delayed write, so don't bother |
1875 | * releasing the freelist lock. | 1875 | * releasing the freelist lock. |
1876 | */ | 1876 | */ |
1877 | error = xfs_qm_dqflush(dqp, 0); | 1877 | error = xfs_qm_dqflush(dqp, SYNC_TRYLOCK); |
1878 | if (error) { | 1878 | if (error) { |
1879 | xfs_warn(mp, "%s: dquot %p flush failed", | 1879 | xfs_warn(mp, "%s: dquot %p flush failed", |
1880 | __func__, dqp); | 1880 | __func__, dqp); |