diff options
author | Joel Becker <joel.becker@oracle.com> | 2008-02-01 15:06:54 -0500 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-04-18 11:56:03 -0400 |
commit | 386a2ef8576e966076c293f6496b9e3d7e3d9035 (patch) | |
tree | 08b6cae47060497359a6ab78134a1bf8e38012cc /fs/ocfs2/ocfs2.h | |
parent | fb86b1f07120b66769a39c445da5c4300069dd44 (diff) |
ocfs2: New slot map format
The old slot map had a few limitations:
- It was limited to one block, so the maximum slot count was 255.
- Each slot was signed 16bits, limiting node numbers to INT16_MAX.
- An empty slot was marked by the magic 0xFFFF (-1).
The new slot map format provides 32bit node numbers (UINT32_MAX), a
separate space to mark a slot in use, and extra room to grow. The slot
map is now bounded by i_size, not a block.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/ocfs2.h')
-rw-r--r-- | fs/ocfs2/ocfs2.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index 95f783dbe8b2..f78e9ed53249 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h | |||
@@ -374,6 +374,13 @@ static inline int ocfs2_mount_local(struct ocfs2_super *osb) | |||
374 | return (osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT); | 374 | return (osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT); |
375 | } | 375 | } |
376 | 376 | ||
377 | static inline int ocfs2_uses_extended_slot_map(struct ocfs2_super *osb) | ||
378 | { | ||
379 | return (osb->s_feature_incompat & | ||
380 | OCFS2_FEATURE_INCOMPAT_EXTENDED_SLOT_MAP); | ||
381 | } | ||
382 | |||
383 | |||
377 | #define OCFS2_IS_VALID_DINODE(ptr) \ | 384 | #define OCFS2_IS_VALID_DINODE(ptr) \ |
378 | (!strcmp((ptr)->i_signature, OCFS2_INODE_SIGNATURE)) | 385 | (!strcmp((ptr)->i_signature, OCFS2_INODE_SIGNATURE)) |
379 | 386 | ||