.. | .. |
---|
4 | 4 | * All Rights Reserved. |
---|
5 | 5 | */ |
---|
6 | 6 | #include "xfs.h" |
---|
| 7 | +#include "xfs_shared.h" |
---|
7 | 8 | #include "xfs_format.h" |
---|
8 | 9 | #include "xfs_log_format.h" |
---|
9 | 10 | #include "xfs_trans_resv.h" |
---|
.. | .. |
---|
11 | 12 | #include "xfs_inode.h" |
---|
12 | 13 | #include "xfs_quota.h" |
---|
13 | 14 | #include "xfs_trans.h" |
---|
14 | | -#include "xfs_trace.h" |
---|
15 | 15 | #include "xfs_icache.h" |
---|
16 | 16 | #include "xfs_qm.h" |
---|
17 | | -#include <linux/quota.h> |
---|
18 | 17 | |
---|
19 | 18 | |
---|
20 | 19 | static void |
---|
.. | .. |
---|
22 | 21 | struct qc_type_state *tstate, |
---|
23 | 22 | struct xfs_mount *mp, |
---|
24 | 23 | struct xfs_inode *ip, |
---|
25 | | - xfs_ino_t ino) |
---|
| 24 | + xfs_ino_t ino, |
---|
| 25 | + struct xfs_def_quota *defq) |
---|
26 | 26 | { |
---|
27 | | - struct xfs_quotainfo *q = mp->m_quotainfo; |
---|
28 | | - bool tempqip = false; |
---|
| 27 | + bool tempqip = false; |
---|
29 | 28 | |
---|
30 | 29 | tstate->ino = ino; |
---|
31 | 30 | if (!ip && ino == NULLFSINO) |
---|
.. | .. |
---|
37 | 36 | } |
---|
38 | 37 | tstate->flags |= QCI_SYSFILE; |
---|
39 | 38 | tstate->blocks = ip->i_d.di_nblocks; |
---|
40 | | - tstate->nextents = ip->i_d.di_nextents; |
---|
41 | | - tstate->spc_timelimit = q->qi_btimelimit; |
---|
42 | | - tstate->ino_timelimit = q->qi_itimelimit; |
---|
43 | | - tstate->rt_spc_timelimit = q->qi_rtbtimelimit; |
---|
44 | | - tstate->spc_warnlimit = q->qi_bwarnlimit; |
---|
45 | | - tstate->ino_warnlimit = q->qi_iwarnlimit; |
---|
46 | | - tstate->rt_spc_warnlimit = q->qi_rtbwarnlimit; |
---|
| 39 | + tstate->nextents = ip->i_df.if_nextents; |
---|
| 40 | + tstate->spc_timelimit = (u32)defq->blk.time; |
---|
| 41 | + tstate->ino_timelimit = (u32)defq->ino.time; |
---|
| 42 | + tstate->rt_spc_timelimit = (u32)defq->rtb.time; |
---|
| 43 | + tstate->spc_warnlimit = defq->blk.warn; |
---|
| 44 | + tstate->ino_warnlimit = defq->ino.warn; |
---|
| 45 | + tstate->rt_spc_warnlimit = defq->rtb.warn; |
---|
47 | 46 | if (tempqip) |
---|
48 | 47 | xfs_irele(ip); |
---|
49 | 48 | } |
---|
.. | .. |
---|
78 | 77 | state->s_state[PRJQUOTA].flags |= QCI_LIMITS_ENFORCED; |
---|
79 | 78 | |
---|
80 | 79 | xfs_qm_fill_state(&state->s_state[USRQUOTA], mp, q->qi_uquotaip, |
---|
81 | | - mp->m_sb.sb_uquotino); |
---|
| 80 | + mp->m_sb.sb_uquotino, &q->qi_usr_default); |
---|
82 | 81 | xfs_qm_fill_state(&state->s_state[GRPQUOTA], mp, q->qi_gquotaip, |
---|
83 | | - mp->m_sb.sb_gquotino); |
---|
| 82 | + mp->m_sb.sb_gquotino, &q->qi_grp_default); |
---|
84 | 83 | xfs_qm_fill_state(&state->s_state[PRJQUOTA], mp, q->qi_pquotaip, |
---|
85 | | - mp->m_sb.sb_pquotino); |
---|
| 84 | + mp->m_sb.sb_pquotino, &q->qi_prj_default); |
---|
86 | 85 | return 0; |
---|
87 | 86 | } |
---|
88 | 87 | |
---|
89 | | -STATIC int |
---|
| 88 | +STATIC xfs_dqtype_t |
---|
90 | 89 | xfs_quota_type(int type) |
---|
91 | 90 | { |
---|
92 | 91 | switch (type) { |
---|
93 | 92 | case USRQUOTA: |
---|
94 | | - return XFS_DQ_USER; |
---|
| 93 | + return XFS_DQTYPE_USER; |
---|
95 | 94 | case GRPQUOTA: |
---|
96 | | - return XFS_DQ_GROUP; |
---|
| 95 | + return XFS_DQTYPE_GROUP; |
---|
97 | 96 | default: |
---|
98 | | - return XFS_DQ_PROJ; |
---|
| 97 | + return XFS_DQTYPE_PROJ; |
---|
99 | 98 | } |
---|
100 | 99 | } |
---|
101 | 100 | |
---|
.. | .. |
---|
110 | 109 | int type, |
---|
111 | 110 | struct qc_info *info) |
---|
112 | 111 | { |
---|
113 | | - struct xfs_mount *mp = XFS_M(sb); |
---|
114 | | - struct qc_dqblk newlim; |
---|
| 112 | + struct xfs_mount *mp = XFS_M(sb); |
---|
| 113 | + struct qc_dqblk newlim; |
---|
115 | 114 | |
---|
116 | 115 | if (sb_rdonly(sb)) |
---|
117 | 116 | return -EROFS; |
---|
.. | .. |
---|
206 | 205 | return -EINVAL; |
---|
207 | 206 | |
---|
208 | 207 | if (uflags & FS_USER_QUOTA) |
---|
209 | | - flags |= XFS_DQ_USER; |
---|
| 208 | + flags |= XFS_QMOPT_UQUOTA; |
---|
210 | 209 | if (uflags & FS_GROUP_QUOTA) |
---|
211 | | - flags |= XFS_DQ_GROUP; |
---|
| 210 | + flags |= XFS_QMOPT_GQUOTA; |
---|
212 | 211 | if (uflags & FS_PROJ_QUOTA) |
---|
213 | | - flags |= XFS_DQ_PROJ; |
---|
| 212 | + flags |= XFS_QMOPT_PQUOTA; |
---|
214 | 213 | |
---|
215 | 214 | return xfs_qm_scall_trunc_qfiles(mp, flags); |
---|
216 | 215 | } |
---|