diff options
author | Nathan Scott <nathans@sgi.com> | 2005-06-21 01:38:48 -0400 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2005-06-21 01:38:48 -0400 |
commit | c8ad20ffeb592d66ea869c57f8c525a9d727c67b (patch) | |
tree | 3306edfe984170bc881a1d7fbeab29b4b59f0305 /fs/xfs/xfs_log_recover.c | |
parent | 8401e9631c26dca9ebbc6997ac445fd49b06c79e (diff) |
[XFS] Add support for project quota, based on Dan Knappes earlier work.
SGI-PV: 932952
SGI-Modid: xfs-linux:xfs-kern:22805a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
-rw-r--r-- | fs/xfs/xfs_log_recover.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 593e597c86b2..91d764a5a9b2 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c | |||
@@ -1964,7 +1964,8 @@ xlog_recover_do_reg_buffer( | |||
1964 | * probably a good thing to do for other buf types also. | 1964 | * probably a good thing to do for other buf types also. |
1965 | */ | 1965 | */ |
1966 | error = 0; | 1966 | error = 0; |
1967 | if (buf_f->blf_flags & (XFS_BLI_UDQUOT_BUF|XFS_BLI_GDQUOT_BUF)) { | 1967 | if (buf_f->blf_flags & |
1968 | (XFS_BLI_UDQUOT_BUF|XFS_BLI_PDQUOT_BUF|XFS_BLI_GDQUOT_BUF)) { | ||
1968 | error = xfs_qm_dqcheck((xfs_disk_dquot_t *) | 1969 | error = xfs_qm_dqcheck((xfs_disk_dquot_t *) |
1969 | item->ri_buf[i].i_addr, | 1970 | item->ri_buf[i].i_addr, |
1970 | -1, 0, XFS_QMOPT_DOWARN, | 1971 | -1, 0, XFS_QMOPT_DOWARN, |
@@ -2030,6 +2031,7 @@ xfs_qm_dqcheck( | |||
2030 | } | 2031 | } |
2031 | 2032 | ||
2032 | if (INT_GET(ddq->d_flags, ARCH_CONVERT) != XFS_DQ_USER && | 2033 | if (INT_GET(ddq->d_flags, ARCH_CONVERT) != XFS_DQ_USER && |
2034 | INT_GET(ddq->d_flags, ARCH_CONVERT) != XFS_DQ_PROJ && | ||
2033 | INT_GET(ddq->d_flags, ARCH_CONVERT) != XFS_DQ_GROUP) { | 2035 | INT_GET(ddq->d_flags, ARCH_CONVERT) != XFS_DQ_GROUP) { |
2034 | if (flags & XFS_QMOPT_DOWARN) | 2036 | if (flags & XFS_QMOPT_DOWARN) |
2035 | cmn_err(CE_ALERT, | 2037 | cmn_err(CE_ALERT, |
@@ -2135,6 +2137,8 @@ xlog_recover_do_dquot_buffer( | |||
2135 | type = 0; | 2137 | type = 0; |
2136 | if (buf_f->blf_flags & XFS_BLI_UDQUOT_BUF) | 2138 | if (buf_f->blf_flags & XFS_BLI_UDQUOT_BUF) |
2137 | type |= XFS_DQ_USER; | 2139 | type |= XFS_DQ_USER; |
2140 | if (buf_f->blf_flags & XFS_BLI_PDQUOT_BUF) | ||
2141 | type |= XFS_DQ_PROJ; | ||
2138 | if (buf_f->blf_flags & XFS_BLI_GDQUOT_BUF) | 2142 | if (buf_f->blf_flags & XFS_BLI_GDQUOT_BUF) |
2139 | type |= XFS_DQ_GROUP; | 2143 | type |= XFS_DQ_GROUP; |
2140 | /* | 2144 | /* |
@@ -2247,7 +2251,8 @@ xlog_recover_do_buffer_trans( | |||
2247 | error = 0; | 2251 | error = 0; |
2248 | if (flags & XFS_BLI_INODE_BUF) { | 2252 | if (flags & XFS_BLI_INODE_BUF) { |
2249 | error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); | 2253 | error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); |
2250 | } else if (flags & (XFS_BLI_UDQUOT_BUF | XFS_BLI_GDQUOT_BUF)) { | 2254 | } else if (flags & |
2255 | (XFS_BLI_UDQUOT_BUF|XFS_BLI_PDQUOT_BUF|XFS_BLI_GDQUOT_BUF)) { | ||
2251 | xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f); | 2256 | xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f); |
2252 | } else { | 2257 | } else { |
2253 | xlog_recover_do_reg_buffer(mp, item, bp, buf_f); | 2258 | xlog_recover_do_reg_buffer(mp, item, bp, buf_f); |
@@ -2619,7 +2624,7 @@ xlog_recover_do_dquot_trans( | |||
2619 | * This type of quotas was turned off, so ignore this record. | 2624 | * This type of quotas was turned off, so ignore this record. |
2620 | */ | 2625 | */ |
2621 | type = INT_GET(recddq->d_flags, ARCH_CONVERT) & | 2626 | type = INT_GET(recddq->d_flags, ARCH_CONVERT) & |
2622 | (XFS_DQ_USER | XFS_DQ_GROUP); | 2627 | (XFS_DQ_USER | XFS_DQ_PROJ | XFS_DQ_GROUP); |
2623 | ASSERT(type); | 2628 | ASSERT(type); |
2624 | if (log->l_quotaoffs_flag & type) | 2629 | if (log->l_quotaoffs_flag & type) |
2625 | return (0); | 2630 | return (0); |