diff options
author | David Chinner <dgc@sgi.com> | 2008-04-09 22:20:17 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-17 21:54:56 -0400 |
commit | 4b8879df8c21bed3efd1eb2da5d72501199aba29 (patch) | |
tree | 4a6991a366e93cd1aebf834f8172dbb83d636c6c /fs | |
parent | 5b1397385bf536cbdb60f3362f44079d15d5f5ee (diff) |
[XFS] Propagate xfs_qm_dqflush_all() errors.
xfs_qm_dqflush_all() can return flush errors. Ensure they are propagated
into the quotacheck code to determine if the quotacheck succeeded or not.
SGI-PV: 980084
SGI-Modid: xfs-linux-melb:xfs-kern:30786a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Niv Sardi <xaiki@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/quota/xfs_qm.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index dec5f95e8470..04b29c672141 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c | |||
@@ -1878,6 +1878,14 @@ xfs_qm_quotacheck( | |||
1878 | } while (! done); | 1878 | } while (! done); |
1879 | 1879 | ||
1880 | /* | 1880 | /* |
1881 | * We've made all the changes that we need to make incore. | ||
1882 | * Flush them down to disk buffers if everything was updated | ||
1883 | * successfully. | ||
1884 | */ | ||
1885 | if (!error) | ||
1886 | error = xfs_qm_dqflush_all(mp, XFS_QMOPT_DELWRI); | ||
1887 | |||
1888 | /* | ||
1881 | * We can get this error if we couldn't do a dquot allocation inside | 1889 | * We can get this error if we couldn't do a dquot allocation inside |
1882 | * xfs_qm_dqusage_adjust (via bulkstat). We don't care about the | 1890 | * xfs_qm_dqusage_adjust (via bulkstat). We don't care about the |
1883 | * dirty dquots that might be cached, we just want to get rid of them | 1891 | * dirty dquots that might be cached, we just want to get rid of them |
@@ -1888,11 +1896,6 @@ xfs_qm_quotacheck( | |||
1888 | xfs_qm_dqpurge_all(mp, XFS_QMOPT_QUOTALL | XFS_QMOPT_QUOTAOFF); | 1896 | xfs_qm_dqpurge_all(mp, XFS_QMOPT_QUOTALL | XFS_QMOPT_QUOTAOFF); |
1889 | goto error_return; | 1897 | goto error_return; |
1890 | } | 1898 | } |
1891 | /* | ||
1892 | * We've made all the changes that we need to make incore. | ||
1893 | * Now flush_them down to disk buffers. | ||
1894 | */ | ||
1895 | xfs_qm_dqflush_all(mp, XFS_QMOPT_DELWRI); | ||
1896 | 1899 | ||
1897 | /* | 1900 | /* |
1898 | * We didn't log anything, because if we crashed, we'll have to | 1901 | * We didn't log anything, because if we crashed, we'll have to |