hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/fs/xfs/xfs_quotaops.c
....@@ -4,6 +4,7 @@
44 * All Rights Reserved.
55 */
66 #include "xfs.h"
7
+#include "xfs_shared.h"
78 #include "xfs_format.h"
89 #include "xfs_log_format.h"
910 #include "xfs_trans_resv.h"
....@@ -11,10 +12,8 @@
1112 #include "xfs_inode.h"
1213 #include "xfs_quota.h"
1314 #include "xfs_trans.h"
14
-#include "xfs_trace.h"
1515 #include "xfs_icache.h"
1616 #include "xfs_qm.h"
17
-#include <linux/quota.h>
1817
1918
2019 static void
....@@ -22,10 +21,10 @@
2221 struct qc_type_state *tstate,
2322 struct xfs_mount *mp,
2423 struct xfs_inode *ip,
25
- xfs_ino_t ino)
24
+ xfs_ino_t ino,
25
+ struct xfs_def_quota *defq)
2626 {
27
- struct xfs_quotainfo *q = mp->m_quotainfo;
28
- bool tempqip = false;
27
+ bool tempqip = false;
2928
3029 tstate->ino = ino;
3130 if (!ip && ino == NULLFSINO)
....@@ -37,13 +36,13 @@
3736 }
3837 tstate->flags |= QCI_SYSFILE;
3938 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;
4746 if (tempqip)
4847 xfs_irele(ip);
4948 }
....@@ -78,24 +77,24 @@
7877 state->s_state[PRJQUOTA].flags |= QCI_LIMITS_ENFORCED;
7978
8079 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);
8281 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);
8483 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);
8685 return 0;
8786 }
8887
89
-STATIC int
88
+STATIC xfs_dqtype_t
9089 xfs_quota_type(int type)
9190 {
9291 switch (type) {
9392 case USRQUOTA:
94
- return XFS_DQ_USER;
93
+ return XFS_DQTYPE_USER;
9594 case GRPQUOTA:
96
- return XFS_DQ_GROUP;
95
+ return XFS_DQTYPE_GROUP;
9796 default:
98
- return XFS_DQ_PROJ;
97
+ return XFS_DQTYPE_PROJ;
9998 }
10099 }
101100
....@@ -110,8 +109,8 @@
110109 int type,
111110 struct qc_info *info)
112111 {
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;
115114
116115 if (sb_rdonly(sb))
117116 return -EROFS;
....@@ -206,11 +205,11 @@
206205 return -EINVAL;
207206
208207 if (uflags & FS_USER_QUOTA)
209
- flags |= XFS_DQ_USER;
208
+ flags |= XFS_QMOPT_UQUOTA;
210209 if (uflags & FS_GROUP_QUOTA)
211
- flags |= XFS_DQ_GROUP;
210
+ flags |= XFS_QMOPT_GQUOTA;
212211 if (uflags & FS_PROJ_QUOTA)
213
- flags |= XFS_DQ_PROJ;
212
+ flags |= XFS_QMOPT_PQUOTA;
214213
215214 return xfs_qm_scall_trunc_qfiles(mp, flags);
216215 }