ocfs2: Add suballoc_loc to metadata blocks.

We need a suballoc_loc field on any suballocated block.  Define them.

Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
Joel Becker 2010-03-26 10:07:42 +08:00 committed by Tao Ma
parent 7d1fe093bf
commit 9cbc01231e
1 changed files with 24 additions and 5 deletions

View File

@ -507,7 +507,10 @@ struct ocfs2_extent_block
block group */ block group */
__le32 h_fs_generation; /* Must match super block */ __le32 h_fs_generation; /* Must match super block */
__le64 h_blkno; /* Offset on disk, in blocks */ __le64 h_blkno; /* Offset on disk, in blocks */
/*20*/ __le64 h_reserved3; /*20*/ __le64 h_suballoc_loc; /* Suballocator block group this
eb belongs to. Only valid
if allocated from a
discontiguous block group */
__le64 h_next_leaf_blk; /* Offset on disk, in blocks, __le64 h_next_leaf_blk; /* Offset on disk, in blocks,
of next leaf header pointing of next leaf header pointing
to data */ to data */
@ -674,7 +677,11 @@ struct ocfs2_dinode {
/*80*/ struct ocfs2_block_check i_check; /* Error checking */ /*80*/ struct ocfs2_block_check i_check; /* Error checking */
/*88*/ __le64 i_dx_root; /* Pointer to dir index root block */ /*88*/ __le64 i_dx_root; /* Pointer to dir index root block */
/*90*/ __le64 i_refcount_loc; /*90*/ __le64 i_refcount_loc;
__le64 i_reserved2[4]; __le64 i_suballoc_loc; /* Suballocator block group this
inode belongs to. Only valid
if allocated from a
discontiguous block group */
/*A0*/ __le64 i_reserved2[3];
/*B8*/ union { /*B8*/ union {
__le64 i_pad1; /* Generic way to refer to this __le64 i_pad1; /* Generic way to refer to this
64bit union */ 64bit union */
@ -809,7 +816,12 @@ struct ocfs2_dx_root_block {
__le32 dr_reserved2; __le32 dr_reserved2;
__le64 dr_free_blk; /* Pointer to head of free __le64 dr_free_blk; /* Pointer to head of free
* unindexed block list. */ * unindexed block list. */
__le64 dr_reserved3[15]; __le64 dr_suballoc_loc; /* Suballocator block group
this root belongs to.
Only valid if allocated
from a discontiguous
block group */
__le64 dr_reserved3[14];
union { union {
struct ocfs2_extent_list dr_list; /* Keep this aligned to 128 struct ocfs2_extent_list dr_list; /* Keep this aligned to 128
* bits for maximum space * bits for maximum space
@ -929,7 +941,11 @@ struct ocfs2_refcount_block {
/*40*/ __le32 rf_generation; /* generation number. all be the same /*40*/ __le32 rf_generation; /* generation number. all be the same
* for the same refcount tree. */ * for the same refcount tree. */
__le32 rf_reserved0; __le32 rf_reserved0;
__le64 rf_reserved1[7]; __le64 rf_suballoc_loc; /* Suballocator block group this
refcount block belongs to. Only
valid if allocated from a
discontiguous block group */
/*50*/ __le64 rf_reserved1[6];
/*80*/ union { /*80*/ union {
struct ocfs2_refcount_list rf_records; /* List of refcount struct ocfs2_refcount_list rf_records; /* List of refcount
records */ records */
@ -1041,7 +1057,10 @@ struct ocfs2_xattr_block {
real xattr or a xattr tree. */ real xattr or a xattr tree. */
__le16 xb_reserved0; __le16 xb_reserved0;
__le32 xb_reserved1; __le32 xb_reserved1;
__le64 xb_reserved2; __le64 xb_suballoc_loc; /* Suballocator block group this
xattr block belongs to. Only
valid if allocated from a
discontiguous block group */
/*30*/ union { /*30*/ union {
struct ocfs2_xattr_header xb_header; /* xattr header if this struct ocfs2_xattr_header xb_header; /* xattr header if this
block contains xattr */ block contains xattr */