| .. | .. |
|---|
| 18 | 18 | typedef uint64_t xfs_qcnt_t; |
|---|
| 19 | 19 | typedef uint16_t xfs_qwarncnt_t; |
|---|
| 20 | 20 | |
|---|
| 21 | +typedef uint8_t xfs_dqtype_t; |
|---|
| 22 | + |
|---|
| 23 | +#define XFS_DQTYPE_STRINGS \ |
|---|
| 24 | + { XFS_DQTYPE_USER, "USER" }, \ |
|---|
| 25 | + { XFS_DQTYPE_PROJ, "PROJ" }, \ |
|---|
| 26 | + { XFS_DQTYPE_GROUP, "GROUP" }, \ |
|---|
| 27 | + { XFS_DQTYPE_BIGTIME, "BIGTIME" } |
|---|
| 28 | + |
|---|
| 21 | 29 | /* |
|---|
| 22 | 30 | * flags for q_flags field in the dquot. |
|---|
| 23 | 31 | */ |
|---|
| 24 | | -#define XFS_DQ_USER 0x0001 /* a user quota */ |
|---|
| 25 | | -#define XFS_DQ_PROJ 0x0002 /* project quota */ |
|---|
| 26 | | -#define XFS_DQ_GROUP 0x0004 /* a group quota */ |
|---|
| 27 | | -#define XFS_DQ_DIRTY 0x0008 /* dquot is dirty */ |
|---|
| 28 | | -#define XFS_DQ_FREEING 0x0010 /* dquot is being torn down */ |
|---|
| 32 | +#define XFS_DQFLAG_DIRTY (1 << 0) /* dquot is dirty */ |
|---|
| 33 | +#define XFS_DQFLAG_FREEING (1 << 1) /* dquot is being torn down */ |
|---|
| 29 | 34 | |
|---|
| 30 | | -#define XFS_DQ_ALLTYPES (XFS_DQ_USER|XFS_DQ_PROJ|XFS_DQ_GROUP) |
|---|
| 31 | | - |
|---|
| 32 | | -#define XFS_DQ_FLAGS \ |
|---|
| 33 | | - { XFS_DQ_USER, "USER" }, \ |
|---|
| 34 | | - { XFS_DQ_PROJ, "PROJ" }, \ |
|---|
| 35 | | - { XFS_DQ_GROUP, "GROUP" }, \ |
|---|
| 36 | | - { XFS_DQ_DIRTY, "DIRTY" }, \ |
|---|
| 37 | | - { XFS_DQ_FREEING, "FREEING" } |
|---|
| 35 | +#define XFS_DQFLAG_STRINGS \ |
|---|
| 36 | + { XFS_DQFLAG_DIRTY, "DIRTY" }, \ |
|---|
| 37 | + { XFS_DQFLAG_FREEING, "FREEING" } |
|---|
| 38 | 38 | |
|---|
| 39 | 39 | /* |
|---|
| 40 | 40 | * We have the possibility of all three quota types being active at once, and |
|---|
| .. | .. |
|---|
| 100 | 100 | #define XFS_QMOPT_FORCE_RES 0x0000010 /* ignore quota limits */ |
|---|
| 101 | 101 | #define XFS_QMOPT_SBVERSION 0x0000040 /* change superblock version num */ |
|---|
| 102 | 102 | #define XFS_QMOPT_GQUOTA 0x0002000 /* group dquot requested */ |
|---|
| 103 | | -#define XFS_QMOPT_ENOSPC 0x0004000 /* enospc instead of edquot (prj) */ |
|---|
| 104 | 103 | |
|---|
| 105 | 104 | /* |
|---|
| 106 | 105 | * flags to xfs_trans_mod_dquot to indicate which field needs to be |
|---|
| .. | .. |
|---|
| 138 | 137 | #define XFS_QMOPT_RESBLK_MASK (XFS_QMOPT_RES_REGBLKS | XFS_QMOPT_RES_RTBLKS) |
|---|
| 139 | 138 | |
|---|
| 140 | 139 | extern xfs_failaddr_t xfs_dquot_verify(struct xfs_mount *mp, |
|---|
| 141 | | - struct xfs_disk_dquot *ddq, xfs_dqid_t id, uint type); |
|---|
| 140 | + struct xfs_disk_dquot *ddq, xfs_dqid_t id); |
|---|
| 142 | 141 | extern xfs_failaddr_t xfs_dqblk_verify(struct xfs_mount *mp, |
|---|
| 143 | | - struct xfs_dqblk *dqb, xfs_dqid_t id, uint type); |
|---|
| 142 | + struct xfs_dqblk *dqb, xfs_dqid_t id); |
|---|
| 144 | 143 | extern int xfs_calc_dquots_per_chunk(unsigned int nbblks); |
|---|
| 145 | | -extern int xfs_dqblk_repair(struct xfs_mount *mp, struct xfs_dqblk *dqb, |
|---|
| 146 | | - xfs_dqid_t id, uint type); |
|---|
| 144 | +extern void xfs_dqblk_repair(struct xfs_mount *mp, struct xfs_dqblk *dqb, |
|---|
| 145 | + xfs_dqid_t id, xfs_dqtype_t type); |
|---|
| 146 | + |
|---|
| 147 | +struct xfs_dquot; |
|---|
| 148 | +time64_t xfs_dquot_from_disk_ts(struct xfs_disk_dquot *ddq, |
|---|
| 149 | + __be32 dtimer); |
|---|
| 150 | +__be32 xfs_dquot_to_disk_ts(struct xfs_dquot *ddq, time64_t timer); |
|---|
| 147 | 151 | |
|---|
| 148 | 152 | #endif /* __XFS_QUOTA_H__ */ |
|---|