diff options
Diffstat (limited to 'include/linux/dqblk_xfs.h')
-rw-r--r-- | include/linux/dqblk_xfs.h | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/include/linux/dqblk_xfs.h b/include/linux/dqblk_xfs.h deleted file mode 100644 index 86552807aed9..000000000000 --- a/include/linux/dqblk_xfs.h +++ /dev/null | |||
@@ -1,166 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) 1995-2001,2004 Silicon Graphics, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU Lesser General Public License | ||
6 | * as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU Lesser General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU Lesset General Public License | ||
14 | * along with this program; if not, write to the Free Software Foundation, | ||
15 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
16 | */ | ||
17 | #ifndef _LINUX_DQBLK_XFS_H | ||
18 | #define _LINUX_DQBLK_XFS_H | ||
19 | |||
20 | #include <linux/types.h> | ||
21 | |||
22 | /* | ||
23 | * Disk quota - quotactl(2) commands for the XFS Quota Manager (XQM). | ||
24 | */ | ||
25 | |||
26 | #define XQM_CMD(x) (('X'<<8)+(x)) /* note: forms first QCMD argument */ | ||
27 | #define XQM_COMMAND(x) (((x) & (0xff<<8)) == ('X'<<8)) /* test if for XFS */ | ||
28 | |||
29 | #define XQM_USRQUOTA 0 /* system call user quota type */ | ||
30 | #define XQM_GRPQUOTA 1 /* system call group quota type */ | ||
31 | #define XQM_PRJQUOTA 2 /* system call project quota type */ | ||
32 | #define XQM_MAXQUOTAS 3 | ||
33 | |||
34 | #define Q_XQUOTAON XQM_CMD(1) /* enable accounting/enforcement */ | ||
35 | #define Q_XQUOTAOFF XQM_CMD(2) /* disable accounting/enforcement */ | ||
36 | #define Q_XGETQUOTA XQM_CMD(3) /* get disk limits and usage */ | ||
37 | #define Q_XSETQLIM XQM_CMD(4) /* set disk limits */ | ||
38 | #define Q_XGETQSTAT XQM_CMD(5) /* get quota subsystem status */ | ||
39 | #define Q_XQUOTARM XQM_CMD(6) /* free disk space used by dquots */ | ||
40 | #define Q_XQUOTASYNC XQM_CMD(7) /* delalloc flush, updates dquots */ | ||
41 | |||
42 | /* | ||
43 | * fs_disk_quota structure: | ||
44 | * | ||
45 | * This contains the current quota information regarding a user/proj/group. | ||
46 | * It is 64-bit aligned, and all the blk units are in BBs (Basic Blocks) of | ||
47 | * 512 bytes. | ||
48 | */ | ||
49 | #define FS_DQUOT_VERSION 1 /* fs_disk_quota.d_version */ | ||
50 | typedef struct fs_disk_quota { | ||
51 | __s8 d_version; /* version of this structure */ | ||
52 | __s8 d_flags; /* FS_{USER,PROJ,GROUP}_QUOTA */ | ||
53 | __u16 d_fieldmask; /* field specifier */ | ||
54 | __u32 d_id; /* user, project, or group ID */ | ||
55 | __u64 d_blk_hardlimit;/* absolute limit on disk blks */ | ||
56 | __u64 d_blk_softlimit;/* preferred limit on disk blks */ | ||
57 | __u64 d_ino_hardlimit;/* maximum # allocated inodes */ | ||
58 | __u64 d_ino_softlimit;/* preferred inode limit */ | ||
59 | __u64 d_bcount; /* # disk blocks owned by the user */ | ||
60 | __u64 d_icount; /* # inodes owned by the user */ | ||
61 | __s32 d_itimer; /* zero if within inode limits */ | ||
62 | /* if not, we refuse service */ | ||
63 | __s32 d_btimer; /* similar to above; for disk blocks */ | ||
64 | __u16 d_iwarns; /* # warnings issued wrt num inodes */ | ||
65 | __u16 d_bwarns; /* # warnings issued wrt disk blocks */ | ||
66 | __s32 d_padding2; /* padding2 - for future use */ | ||
67 | __u64 d_rtb_hardlimit;/* absolute limit on realtime blks */ | ||
68 | __u64 d_rtb_softlimit;/* preferred limit on RT disk blks */ | ||
69 | __u64 d_rtbcount; /* # realtime blocks owned */ | ||
70 | __s32 d_rtbtimer; /* similar to above; for RT disk blks */ | ||
71 | __u16 d_rtbwarns; /* # warnings issued wrt RT disk blks */ | ||
72 | __s16 d_padding3; /* padding3 - for future use */ | ||
73 | char d_padding4[8]; /* yet more padding */ | ||
74 | } fs_disk_quota_t; | ||
75 | |||
76 | /* | ||
77 | * These fields are sent to Q_XSETQLIM to specify fields that need to change. | ||
78 | */ | ||
79 | #define FS_DQ_ISOFT (1<<0) | ||
80 | #define FS_DQ_IHARD (1<<1) | ||
81 | #define FS_DQ_BSOFT (1<<2) | ||
82 | #define FS_DQ_BHARD (1<<3) | ||
83 | #define FS_DQ_RTBSOFT (1<<4) | ||
84 | #define FS_DQ_RTBHARD (1<<5) | ||
85 | #define FS_DQ_LIMIT_MASK (FS_DQ_ISOFT | FS_DQ_IHARD | FS_DQ_BSOFT | \ | ||
86 | FS_DQ_BHARD | FS_DQ_RTBSOFT | FS_DQ_RTBHARD) | ||
87 | /* | ||
88 | * These timers can only be set in super user's dquot. For others, timers are | ||
89 | * automatically started and stopped. Superusers timer values set the limits | ||
90 | * for the rest. In case these values are zero, the DQ_{F,B}TIMELIMIT values | ||
91 | * defined below are used. | ||
92 | * These values also apply only to the d_fieldmask field for Q_XSETQLIM. | ||
93 | */ | ||
94 | #define FS_DQ_BTIMER (1<<6) | ||
95 | #define FS_DQ_ITIMER (1<<7) | ||
96 | #define FS_DQ_RTBTIMER (1<<8) | ||
97 | #define FS_DQ_TIMER_MASK (FS_DQ_BTIMER | FS_DQ_ITIMER | FS_DQ_RTBTIMER) | ||
98 | |||
99 | /* | ||
100 | * Warning counts are set in both super user's dquot and others. For others, | ||
101 | * warnings are set/cleared by the administrators (or automatically by going | ||
102 | * below the soft limit). Superusers warning values set the warning limits | ||
103 | * for the rest. In case these values are zero, the DQ_{F,B}WARNLIMIT values | ||
104 | * defined below are used. | ||
105 | * These values also apply only to the d_fieldmask field for Q_XSETQLIM. | ||
106 | */ | ||
107 | #define FS_DQ_BWARNS (1<<9) | ||
108 | #define FS_DQ_IWARNS (1<<10) | ||
109 | #define FS_DQ_RTBWARNS (1<<11) | ||
110 | #define FS_DQ_WARNS_MASK (FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS) | ||
111 | |||
112 | /* | ||
113 | * Accounting values. These can only be set for filesystem with | ||
114 | * non-transactional quotas that require quotacheck(8) in userspace. | ||
115 | */ | ||
116 | #define FS_DQ_BCOUNT (1<<12) | ||
117 | #define FS_DQ_ICOUNT (1<<13) | ||
118 | #define FS_DQ_RTBCOUNT (1<<14) | ||
119 | #define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT) | ||
120 | |||
121 | /* | ||
122 | * Various flags related to quotactl(2). | ||
123 | */ | ||
124 | #define FS_QUOTA_UDQ_ACCT (1<<0) /* user quota accounting */ | ||
125 | #define FS_QUOTA_UDQ_ENFD (1<<1) /* user quota limits enforcement */ | ||
126 | #define FS_QUOTA_GDQ_ACCT (1<<2) /* group quota accounting */ | ||
127 | #define FS_QUOTA_GDQ_ENFD (1<<3) /* group quota limits enforcement */ | ||
128 | #define FS_QUOTA_PDQ_ACCT (1<<4) /* project quota accounting */ | ||
129 | #define FS_QUOTA_PDQ_ENFD (1<<5) /* project quota limits enforcement */ | ||
130 | |||
131 | #define FS_USER_QUOTA (1<<0) /* user quota type */ | ||
132 | #define FS_PROJ_QUOTA (1<<1) /* project quota type */ | ||
133 | #define FS_GROUP_QUOTA (1<<2) /* group quota type */ | ||
134 | |||
135 | /* | ||
136 | * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system. | ||
137 | * Provides a centralized way to get meta information about the quota subsystem. | ||
138 | * eg. space taken up for user and group quotas, number of dquots currently | ||
139 | * incore. | ||
140 | */ | ||
141 | #define FS_QSTAT_VERSION 1 /* fs_quota_stat.qs_version */ | ||
142 | |||
143 | /* | ||
144 | * Some basic information about 'quota files'. | ||
145 | */ | ||
146 | typedef struct fs_qfilestat { | ||
147 | __u64 qfs_ino; /* inode number */ | ||
148 | __u64 qfs_nblks; /* number of BBs 512-byte-blks */ | ||
149 | __u32 qfs_nextents; /* number of extents */ | ||
150 | } fs_qfilestat_t; | ||
151 | |||
152 | typedef struct fs_quota_stat { | ||
153 | __s8 qs_version; /* version number for future changes */ | ||
154 | __u16 qs_flags; /* FS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */ | ||
155 | __s8 qs_pad; /* unused */ | ||
156 | fs_qfilestat_t qs_uquota; /* user quota storage information */ | ||
157 | fs_qfilestat_t qs_gquota; /* group quota storage information */ | ||
158 | __u32 qs_incoredqs; /* number of dquots incore */ | ||
159 | __s32 qs_btimelimit; /* limit for blks timer */ | ||
160 | __s32 qs_itimelimit; /* limit for inodes timer */ | ||
161 | __s32 qs_rtbtimelimit;/* limit for rt blks timer */ | ||
162 | __u16 qs_bwarnlimit; /* limit for num warnings */ | ||
163 | __u16 qs_iwarnlimit; /* limit for num warnings */ | ||
164 | } fs_quota_stat_t; | ||
165 | |||
166 | #endif /* _LINUX_DQBLK_XFS_H */ | ||