diff options
author | Dave Chinner <david@fromorbit.com> | 2010-01-11 12:47:45 +0100 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-01-15 22:34:04 +0100 |
commit | aed3bb90abaf0b42e8c8747e192f7bb97f445279 (patch) | |
tree | 4619214ed42821792b05f4417cb95bde90abb562 /fs/xfs/xfs_ag.h | |
parent | xfs: Replace per-ag array with a radix tree (diff) | |
download | linux-aed3bb90abaf0b42e8c8747e192f7bb97f445279.tar.xz linux-aed3bb90abaf0b42e8c8747e192f7bb97f445279.zip |
xfs: Reference count per-ag structures
Reference count the per-ag structures to ensure that we keep get/put
pairs balanced. Assert that the reference counts are zero at unmount
time to catch leaks. In future, reference counts will enable us to
safely remove perag structures by allowing us to detect when they
are no longer in use.
Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_ag.h')
-rw-r--r-- | fs/xfs/xfs_ag.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 6702bd865811..18ae43f4255d 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -196,8 +196,8 @@ typedef struct xfs_perag_busy { #define XFS_PAGB_NUM_SLOTS 128 #endif -typedef struct xfs_perag -{ +typedef struct xfs_perag { + atomic_t pag_ref; /* perag reference count */ char pagf_init; /* this agf's entry is initialized */ char pagi_init; /* this agi's entry is initialized */ char pagf_metadata; /* the agf is preferred to be metadata */ |