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