diff options
author | Christoph Hellwig <hch@infradead.org> | 2012-03-13 04:52:35 -0400 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2012-03-14 12:09:06 -0400 |
commit | 9f920f116426806bfa34c1422742e1bf7b7a2b4b (patch) | |
tree | 3ec0a4f006dc10ed56e5bec1b605f5ecbb3a3275 /fs/xfs/xfs_dquot.h | |
parent | f8739c3ce2ac9a01515b56026b6a066c0808234b (diff) |
xfs: use per-filesystem radix trees for dquot lookup
Replace the global hash tables for looking up in-memory dquot structures
with per-filesystem radix trees to allow scaling to a large number of
in-memory dquot structures.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_dquot.h')
-rw-r--r-- | fs/xfs/xfs_dquot.h | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/fs/xfs/xfs_dquot.h b/fs/xfs/xfs_dquot.h index f291c25e5992..4061f1731271 100644 --- a/fs/xfs/xfs_dquot.h +++ b/fs/xfs/xfs_dquot.h | |||
@@ -29,16 +29,6 @@ | |||
29 | * when quotas are off. | 29 | * when quotas are off. |
30 | */ | 30 | */ |
31 | 31 | ||
32 | /* | ||
33 | * The hash chain headers (hash buckets) | ||
34 | */ | ||
35 | typedef struct xfs_dqhash { | ||
36 | struct list_head qh_list; | ||
37 | struct mutex qh_lock; | ||
38 | uint qh_version; /* ever increasing version */ | ||
39 | uint qh_nelems; /* number of dquots on the list */ | ||
40 | } xfs_dqhash_t; | ||
41 | |||
42 | struct xfs_mount; | 32 | struct xfs_mount; |
43 | struct xfs_trans; | 33 | struct xfs_trans; |
44 | 34 | ||
@@ -49,8 +39,6 @@ typedef struct xfs_dquot { | |||
49 | uint dq_flags; /* various flags (XFS_DQ_*) */ | 39 | uint dq_flags; /* various flags (XFS_DQ_*) */ |
50 | struct list_head q_lru; /* global free list of dquots */ | 40 | struct list_head q_lru; /* global free list of dquots */ |
51 | struct list_head q_mplist; /* mount's list of dquots */ | 41 | struct list_head q_mplist; /* mount's list of dquots */ |
52 | struct list_head q_hashlist; /* gloabl hash list of dquots */ | ||
53 | xfs_dqhash_t *q_hash; /* the hashchain header */ | ||
54 | struct xfs_mount*q_mount; /* filesystem this relates to */ | 42 | struct xfs_mount*q_mount; /* filesystem this relates to */ |
55 | struct xfs_trans*q_transp; /* trans this belongs to currently */ | 43 | struct xfs_trans*q_transp; /* trans this belongs to currently */ |
56 | uint q_nrefs; /* # active refs from inodes */ | 44 | uint q_nrefs; /* # active refs from inodes */ |