diff options
-rw-r--r-- | fs/ext2/super.c | 1 | ||||
-rw-r--r-- | fs/jfs/super.c | 1 | ||||
-rw-r--r-- | fs/quota_v1.c | 1 | ||||
-rw-r--r-- | fs/quota_v2.c | 1 | ||||
-rw-r--r-- | fs/reiserfs/super.c | 1 | ||||
-rw-r--r-- | fs/ufs/super.c | 1 | ||||
-rw-r--r-- | include/linux/quota.h | 22 | ||||
-rw-r--r-- | include/linux/quotaops.h | 26 |
8 files changed, 35 insertions, 19 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index ef50cbc792db..31308a3b0b8b 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/seq_file.h> | 31 | #include <linux/seq_file.h> |
32 | #include <linux/mount.h> | 32 | #include <linux/mount.h> |
33 | #include <linux/log2.h> | 33 | #include <linux/log2.h> |
34 | #include <linux/quotaops.h> | ||
34 | #include <asm/uaccess.h> | 35 | #include <asm/uaccess.h> |
35 | #include "ext2.h" | 36 | #include "ext2.h" |
36 | #include "xattr.h" | 37 | #include "xattr.h" |
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 0288e6d7936a..359c091d8965 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/parser.h> | 22 | #include <linux/parser.h> |
23 | #include <linux/completion.h> | 23 | #include <linux/completion.h> |
24 | #include <linux/vfs.h> | 24 | #include <linux/vfs.h> |
25 | #include <linux/quotaops.h> | ||
25 | #include <linux/mount.h> | 26 | #include <linux/mount.h> |
26 | #include <linux/moduleparam.h> | 27 | #include <linux/moduleparam.h> |
27 | #include <linux/kthread.h> | 28 | #include <linux/kthread.h> |
diff --git a/fs/quota_v1.c b/fs/quota_v1.c index a6cf9269105c..5ae15b13eeb0 100644 --- a/fs/quota_v1.c +++ b/fs/quota_v1.c | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <linux/errno.h> | 1 | #include <linux/errno.h> |
2 | #include <linux/fs.h> | 2 | #include <linux/fs.h> |
3 | #include <linux/quota.h> | 3 | #include <linux/quota.h> |
4 | #include <linux/quotaops.h> | ||
4 | #include <linux/dqblk_v1.h> | 5 | #include <linux/dqblk_v1.h> |
5 | #include <linux/quotaio_v1.h> | 6 | #include <linux/quotaio_v1.h> |
6 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
diff --git a/fs/quota_v2.c b/fs/quota_v2.c index 234ada903633..b53827dc02d9 100644 --- a/fs/quota_v2.c +++ b/fs/quota_v2.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
14 | #include <linux/quotaops.h> | ||
14 | 15 | ||
15 | #include <asm/byteorder.h> | 16 | #include <asm/byteorder.h> |
16 | 17 | ||
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index a10a6d2a8870..2ec748ba0bd3 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/blkdev.h> | 22 | #include <linux/blkdev.h> |
23 | #include <linux/buffer_head.h> | 23 | #include <linux/buffer_head.h> |
24 | #include <linux/exportfs.h> | 24 | #include <linux/exportfs.h> |
25 | #include <linux/quotaops.h> | ||
25 | #include <linux/vfs.h> | 26 | #include <linux/vfs.h> |
26 | #include <linux/mnt_namespace.h> | 27 | #include <linux/mnt_namespace.h> |
27 | #include <linux/mount.h> | 28 | #include <linux/mount.h> |
diff --git a/fs/ufs/super.c b/fs/ufs/super.c index 506f724055c2..227c9d700040 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c | |||
@@ -76,6 +76,7 @@ | |||
76 | 76 | ||
77 | #include <linux/errno.h> | 77 | #include <linux/errno.h> |
78 | #include <linux/fs.h> | 78 | #include <linux/fs.h> |
79 | #include <linux/quotaops.h> | ||
79 | #include <linux/slab.h> | 80 | #include <linux/slab.h> |
80 | #include <linux/time.h> | 81 | #include <linux/time.h> |
81 | #include <linux/stat.h> | 82 | #include <linux/stat.h> |
diff --git a/include/linux/quota.h b/include/linux/quota.h index 6f1d97ddf828..f9983ea0ff88 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
@@ -41,9 +41,6 @@ | |||
41 | #define __DQUOT_VERSION__ "dquot_6.5.1" | 41 | #define __DQUOT_VERSION__ "dquot_6.5.1" |
42 | #define __DQUOT_NUM_VERSION__ 6*10000+5*100+1 | 42 | #define __DQUOT_NUM_VERSION__ 6*10000+5*100+1 |
43 | 43 | ||
44 | typedef __kernel_uid32_t qid_t; /* Type in which we store ids in memory */ | ||
45 | typedef __u64 qsize_t; /* Type in which we store sizes */ | ||
46 | |||
47 | /* Size of blocks in which are counted size limits */ | 44 | /* Size of blocks in which are counted size limits */ |
48 | #define QUOTABLOCK_BITS 10 | 45 | #define QUOTABLOCK_BITS 10 |
49 | #define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS) | 46 | #define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS) |
@@ -172,6 +169,9 @@ enum { | |||
172 | 169 | ||
173 | #include <asm/atomic.h> | 170 | #include <asm/atomic.h> |
174 | 171 | ||
172 | typedef __kernel_uid32_t qid_t; /* Type in which we store ids in memory */ | ||
173 | typedef __u64 qsize_t; /* Type in which we store sizes */ | ||
174 | |||
175 | extern spinlock_t dq_data_lock; | 175 | extern spinlock_t dq_data_lock; |
176 | 176 | ||
177 | /* Maximal numbers of writes for quota operation (insert/delete/update) | 177 | /* Maximal numbers of writes for quota operation (insert/delete/update) |
@@ -225,9 +225,6 @@ struct super_block; | |||
225 | extern void mark_info_dirty(struct super_block *sb, int type); | 225 | extern void mark_info_dirty(struct super_block *sb, int type); |
226 | #define info_dirty(info) test_bit(DQF_INFO_DIRTY_B, &(info)->dqi_flags) | 226 | #define info_dirty(info) test_bit(DQF_INFO_DIRTY_B, &(info)->dqi_flags) |
227 | 227 | ||
228 | #define sb_dqopt(sb) (&(sb)->s_dquot) | ||
229 | #define sb_dqinfo(sb, type) (sb_dqopt(sb)->info+(type)) | ||
230 | |||
231 | struct dqstats { | 228 | struct dqstats { |
232 | int lookups; | 229 | int lookups; |
233 | int drops; | 230 | int drops; |
@@ -335,19 +332,6 @@ struct quota_info { | |||
335 | struct quota_format_ops *ops[MAXQUOTAS]; /* Operations for each type */ | 332 | struct quota_format_ops *ops[MAXQUOTAS]; /* Operations for each type */ |
336 | }; | 333 | }; |
337 | 334 | ||
338 | #define sb_has_quota_enabled(sb, type) ((type)==USRQUOTA ? \ | ||
339 | (sb_dqopt(sb)->flags & DQUOT_USR_ENABLED) : (sb_dqopt(sb)->flags & DQUOT_GRP_ENABLED)) | ||
340 | |||
341 | #define sb_any_quota_enabled(sb) (sb_has_quota_enabled(sb, USRQUOTA) | \ | ||
342 | sb_has_quota_enabled(sb, GRPQUOTA)) | ||
343 | |||
344 | #define sb_has_quota_suspended(sb, type) \ | ||
345 | ((type) == USRQUOTA ? (sb_dqopt(sb)->flags & DQUOT_USR_SUSPENDED) : \ | ||
346 | (sb_dqopt(sb)->flags & DQUOT_GRP_SUSPENDED)) | ||
347 | |||
348 | #define sb_any_quota_suspended(sb) (sb_has_quota_suspended(sb, USRQUOTA) | \ | ||
349 | sb_has_quota_suspended(sb, GRPQUOTA)) | ||
350 | |||
351 | int register_quota_format(struct quota_format_type *fmt); | 335 | int register_quota_format(struct quota_format_type *fmt); |
352 | void unregister_quota_format(struct quota_format_type *fmt); | 336 | void unregister_quota_format(struct quota_format_type *fmt); |
353 | 337 | ||
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index 0c8f9fe462af..38218c1334b1 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
@@ -14,6 +14,8 @@ | |||
14 | 14 | ||
15 | #include <linux/fs.h> | 15 | #include <linux/fs.h> |
16 | 16 | ||
17 | #define sb_dqopt(sb) (&(sb)->s_dquot) | ||
18 | |||
17 | #if defined(CONFIG_QUOTA) | 19 | #if defined(CONFIG_QUOTA) |
18 | 20 | ||
19 | /* | 21 | /* |
@@ -52,6 +54,25 @@ void vfs_dq_drop(struct inode *inode); | |||
52 | int vfs_dq_transfer(struct inode *inode, struct iattr *iattr); | 54 | int vfs_dq_transfer(struct inode *inode, struct iattr *iattr); |
53 | int vfs_dq_quota_on_remount(struct super_block *sb); | 55 | int vfs_dq_quota_on_remount(struct super_block *sb); |
54 | 56 | ||
57 | #define sb_dqinfo(sb, type) (sb_dqopt(sb)->info+(type)) | ||
58 | |||
59 | /* | ||
60 | * Functions for checking status of quota | ||
61 | */ | ||
62 | |||
63 | #define sb_has_quota_enabled(sb, type) ((type)==USRQUOTA ? \ | ||
64 | (sb_dqopt(sb)->flags & DQUOT_USR_ENABLED) : (sb_dqopt(sb)->flags & DQUOT_GRP_ENABLED)) | ||
65 | |||
66 | #define sb_any_quota_enabled(sb) (sb_has_quota_enabled(sb, USRQUOTA) | \ | ||
67 | sb_has_quota_enabled(sb, GRPQUOTA)) | ||
68 | |||
69 | #define sb_has_quota_suspended(sb, type) \ | ||
70 | ((type) == USRQUOTA ? (sb_dqopt(sb)->flags & DQUOT_USR_SUSPENDED) : \ | ||
71 | (sb_dqopt(sb)->flags & DQUOT_GRP_SUSPENDED)) | ||
72 | |||
73 | #define sb_any_quota_suspended(sb) (sb_has_quota_suspended(sb, USRQUOTA) | \ | ||
74 | sb_has_quota_suspended(sb, GRPQUOTA)) | ||
75 | |||
55 | /* | 76 | /* |
56 | * Operations supported for diskquotas. | 77 | * Operations supported for diskquotas. |
57 | */ | 78 | */ |
@@ -159,6 +180,11 @@ static inline int vfs_dq_off(struct super_block *sb, int remount) | |||
159 | 180 | ||
160 | #else | 181 | #else |
161 | 182 | ||
183 | #define sb_has_quota_enabled(sb, type) 0 | ||
184 | #define sb_any_quota_enabled(sb) 0 | ||
185 | #define sb_has_quota_suspended(sb, type) 0 | ||
186 | #define sb_any_quota_suspended(sb) 0 | ||
187 | |||
162 | /* | 188 | /* |
163 | * NO-OP when quota not configured. | 189 | * NO-OP when quota not configured. |
164 | */ | 190 | */ |