diff options
Diffstat (limited to 'fs/quota_v1.c')
-rw-r--r-- | fs/quota_v1.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/fs/quota_v1.c b/fs/quota_v1.c index 5ae15b13eeb0..b4af1c69ad16 100644 --- a/fs/quota_v1.c +++ b/fs/quota_v1.c | |||
@@ -3,25 +3,39 @@ | |||
3 | #include <linux/quota.h> | 3 | #include <linux/quota.h> |
4 | #include <linux/quotaops.h> | 4 | #include <linux/quotaops.h> |
5 | #include <linux/dqblk_v1.h> | 5 | #include <linux/dqblk_v1.h> |
6 | #include <linux/quotaio_v1.h> | ||
7 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | 9 | ||
11 | #include <asm/byteorder.h> | 10 | #include <asm/byteorder.h> |
12 | 11 | ||
12 | #include "quotaio_v1.h" | ||
13 | |||
13 | MODULE_AUTHOR("Jan Kara"); | 14 | MODULE_AUTHOR("Jan Kara"); |
14 | MODULE_DESCRIPTION("Old quota format support"); | 15 | MODULE_DESCRIPTION("Old quota format support"); |
15 | MODULE_LICENSE("GPL"); | 16 | MODULE_LICENSE("GPL"); |
16 | 17 | ||
18 | #define QUOTABLOCK_BITS 10 | ||
19 | #define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS) | ||
20 | |||
21 | static inline qsize_t v1_stoqb(qsize_t space) | ||
22 | { | ||
23 | return (space + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS; | ||
24 | } | ||
25 | |||
26 | static inline qsize_t v1_qbtos(qsize_t blocks) | ||
27 | { | ||
28 | return blocks << QUOTABLOCK_BITS; | ||
29 | } | ||
30 | |||
17 | static void v1_disk2mem_dqblk(struct mem_dqblk *m, struct v1_disk_dqblk *d) | 31 | static void v1_disk2mem_dqblk(struct mem_dqblk *m, struct v1_disk_dqblk *d) |
18 | { | 32 | { |
19 | m->dqb_ihardlimit = d->dqb_ihardlimit; | 33 | m->dqb_ihardlimit = d->dqb_ihardlimit; |
20 | m->dqb_isoftlimit = d->dqb_isoftlimit; | 34 | m->dqb_isoftlimit = d->dqb_isoftlimit; |
21 | m->dqb_curinodes = d->dqb_curinodes; | 35 | m->dqb_curinodes = d->dqb_curinodes; |
22 | m->dqb_bhardlimit = d->dqb_bhardlimit; | 36 | m->dqb_bhardlimit = v1_qbtos(d->dqb_bhardlimit); |
23 | m->dqb_bsoftlimit = d->dqb_bsoftlimit; | 37 | m->dqb_bsoftlimit = v1_qbtos(d->dqb_bsoftlimit); |
24 | m->dqb_curspace = ((qsize_t)d->dqb_curblocks) << QUOTABLOCK_BITS; | 38 | m->dqb_curspace = v1_qbtos(d->dqb_curblocks); |
25 | m->dqb_itime = d->dqb_itime; | 39 | m->dqb_itime = d->dqb_itime; |
26 | m->dqb_btime = d->dqb_btime; | 40 | m->dqb_btime = d->dqb_btime; |
27 | } | 41 | } |
@@ -31,9 +45,9 @@ static void v1_mem2disk_dqblk(struct v1_disk_dqblk *d, struct mem_dqblk *m) | |||
31 | d->dqb_ihardlimit = m->dqb_ihardlimit; | 45 | d->dqb_ihardlimit = m->dqb_ihardlimit; |
32 | d->dqb_isoftlimit = m->dqb_isoftlimit; | 46 | d->dqb_isoftlimit = m->dqb_isoftlimit; |
33 | d->dqb_curinodes = m->dqb_curinodes; | 47 | d->dqb_curinodes = m->dqb_curinodes; |
34 | d->dqb_bhardlimit = m->dqb_bhardlimit; | 48 | d->dqb_bhardlimit = v1_stoqb(m->dqb_bhardlimit); |
35 | d->dqb_bsoftlimit = m->dqb_bsoftlimit; | 49 | d->dqb_bsoftlimit = v1_stoqb(m->dqb_bsoftlimit); |
36 | d->dqb_curblocks = toqb(m->dqb_curspace); | 50 | d->dqb_curblocks = v1_stoqb(m->dqb_curspace); |
37 | d->dqb_itime = m->dqb_itime; | 51 | d->dqb_itime = m->dqb_itime; |
38 | d->dqb_btime = m->dqb_btime; | 52 | d->dqb_btime = m->dqb_btime; |
39 | } | 53 | } |