diff options
Diffstat (limited to 'fs/xfs/xfs_bmap.h')
-rw-r--r-- | fs/xfs/xfs_bmap.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index 6ff70cda451c..9f3e3a836d15 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h | |||
@@ -54,12 +54,23 @@ typedef struct xfs_bmap_free_item | |||
54 | 54 | ||
55 | /* | 55 | /* |
56 | * Header for free extent list. | 56 | * Header for free extent list. |
57 | * | ||
58 | * xbf_low is used by the allocator to activate the lowspace algorithm - | ||
59 | * when free space is running low the extent allocator may choose to | ||
60 | * allocate an extent from an AG without leaving sufficient space for | ||
61 | * a btree split when inserting the new extent. In this case the allocator | ||
62 | * will enable the lowspace algorithm which is supposed to allow further | ||
63 | * allocations (such as btree splits and newroots) to allocate from | ||
64 | * sequential AGs. In order to avoid locking AGs out of order the lowspace | ||
65 | * algorithm will start searching for free space from AG 0. If the correct | ||
66 | * transaction reservations have been made then this algorithm will eventually | ||
67 | * find all the space it needs. | ||
57 | */ | 68 | */ |
58 | typedef struct xfs_bmap_free | 69 | typedef struct xfs_bmap_free |
59 | { | 70 | { |
60 | xfs_bmap_free_item_t *xbf_first; /* list of to-be-free extents */ | 71 | xfs_bmap_free_item_t *xbf_first; /* list of to-be-free extents */ |
61 | int xbf_count; /* count of items on list */ | 72 | int xbf_count; /* count of items on list */ |
62 | int xbf_low; /* kludge: alloc in low mode */ | 73 | int xbf_low; /* alloc in low mode */ |
63 | } xfs_bmap_free_t; | 74 | } xfs_bmap_free_t; |
64 | 75 | ||
65 | #define XFS_BMAP_MAX_NMAP 4 | 76 | #define XFS_BMAP_MAX_NMAP 4 |