diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-12 12:14:51 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-12 12:14:51 -0400 |
| commit | f26e51f67ae6a75ffc57b96cf5fe096f75e778cb (patch) | |
| tree | 1e848187885426430cc93bffaadc539312ce636d /include/linux | |
| parent | 1462222b76a09a24b240563a51d5f9fbea8bd3e1 (diff) | |
| parent | c36258b5925e6cf6bf72904635100593573bfcff (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (51 commits)
[DLM] block dlm_recv in recovery transition
[DLM] don't overwrite castparam if it's NULL
[GFS2] Get superblock a different way
[GFS2] Don't try to remove buffers that don't exist
[GFS2] Alternate gfs2_iget to avoid looking up inodes being freed
[GFS2] Data corruption fix
[GFS2] Clean up journaled data writing
[GFS2] GFS2: chmod hung - fix race in thread creation
[DLM] Make dlm_sendd cond_resched more
[GFS2] Move inode deletion out of blocking_cb
[GFS2] flocks from same process trip kernel BUG at fs/gfs2/glock.c:1118!
[GFS2] Clean up gfs2_trans_add_revoke()
[GFS2] Use slab operations for all gfs2_bufdata allocations
[GFS2] Replace revoke structure with bufdata structure
[GFS2] Fix ordering of dirty/journal for ordered buffer unstuffing
[GFS2] Clean up ordered write code
[GFS2] Move pin/unpin into lops.c, clean up locking
[GFS2] Don't mark jdata dirty in gfs2_unstuffer_page()
[GFS2] Introduce gfs2_remove_from_ail
[GFS2] Correct lock ordering in unlink
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/gfs2_ondisk.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/include/linux/gfs2_ondisk.h b/include/linux/gfs2_ondisk.h index a44a6a078f0a..c3c19f926e6f 100644 --- a/include/linux/gfs2_ondisk.h +++ b/include/linux/gfs2_ondisk.h | |||
| @@ -170,6 +170,33 @@ struct gfs2_rgrp { | |||
| 170 | }; | 170 | }; |
| 171 | 171 | ||
| 172 | /* | 172 | /* |
| 173 | * quota linked list: user quotas and group quotas form two separate | ||
| 174 | * singly linked lists. ll_next stores uids or gids of next quotas in the | ||
| 175 | * linked list. | ||
| 176 | |||
| 177 | Given the uid/gid, how to calculate the quota file offsets for the corresponding | ||
| 178 | gfs2_quota structures on disk: | ||
| 179 | |||
| 180 | for user quotas, given uid, | ||
| 181 | offset = uid * sizeof(struct gfs2_quota); | ||
| 182 | |||
| 183 | for group quotas, given gid, | ||
| 184 | offset = (gid * sizeof(struct gfs2_quota)) + sizeof(struct gfs2_quota); | ||
| 185 | |||
| 186 | |||
| 187 | uid:0 gid:0 uid:12 gid:12 uid:17 gid:17 uid:5142 gid:5142 | ||
| 188 | +-------+-------+ +-------+-------+ +-------+- - - -+ +- - - -+-------+ | ||
| 189 | | valid | valid | :: | valid | valid | :: | valid | inval | :: | inval | valid | | ||
| 190 | +-------+-------+ +-------+-------+ +-------+- - - -+ +- - - -+-------+ | ||
| 191 | next:12 next:12 next:17 next:5142 next:NULL next:NULL | ||
| 192 | | | | | |<-- user quota list | | ||
| 193 | \______|___________/ \______|___________/ group quota list -->| | ||
| 194 | | | | | ||
| 195 | \__________________/ \_______________________________________/ | ||
| 196 | |||
| 197 | */ | ||
| 198 | |||
| 199 | /* | ||
| 173 | * quota structure | 200 | * quota structure |
| 174 | */ | 201 | */ |
| 175 | 202 | ||
| @@ -177,7 +204,8 @@ struct gfs2_quota { | |||
| 177 | __be64 qu_limit; | 204 | __be64 qu_limit; |
| 178 | __be64 qu_warn; | 205 | __be64 qu_warn; |
| 179 | __be64 qu_value; | 206 | __be64 qu_value; |
| 180 | __u8 qu_reserved[64]; | 207 | __be32 qu_ll_next; /* location of next quota in list */ |
| 208 | __u8 qu_reserved[60]; | ||
| 181 | }; | 209 | }; |
| 182 | 210 | ||
| 183 | /* | 211 | /* |
