Merge branch 'discontig-bg' of git://oss.oracle.com/git/tma/linux-2.6 into ocfs2-merge-window
This commit is contained in:
@@ -571,7 +571,7 @@ static int ocfs2_create_refcount_tree(struct inode *inode,
|
||||
struct ocfs2_refcount_tree *new_tree = NULL, *tree = NULL;
|
||||
u16 suballoc_bit_start;
|
||||
u32 num_got;
|
||||
u64 first_blkno;
|
||||
u64 suballoc_loc, first_blkno;
|
||||
|
||||
BUG_ON(oi->ip_dyn_features & OCFS2_HAS_REFCOUNT_FL);
|
||||
|
||||
@@ -597,7 +597,7 @@ static int ocfs2_create_refcount_tree(struct inode *inode,
|
||||
goto out_commit;
|
||||
}
|
||||
|
||||
ret = ocfs2_claim_metadata(osb, handle, meta_ac, 1,
|
||||
ret = ocfs2_claim_metadata(handle, meta_ac, 1, &suballoc_loc,
|
||||
&suballoc_bit_start, &num_got,
|
||||
&first_blkno);
|
||||
if (ret) {
|
||||
@@ -627,6 +627,7 @@ static int ocfs2_create_refcount_tree(struct inode *inode,
|
||||
memset(rb, 0, inode->i_sb->s_blocksize);
|
||||
strcpy((void *)rb, OCFS2_REFCOUNT_BLOCK_SIGNATURE);
|
||||
rb->rf_suballoc_slot = cpu_to_le16(meta_ac->ac_alloc_slot);
|
||||
rb->rf_suballoc_loc = cpu_to_le64(suballoc_loc);
|
||||
rb->rf_suballoc_bit = cpu_to_le16(suballoc_bit_start);
|
||||
rb->rf_fs_generation = cpu_to_le32(osb->fs_generation);
|
||||
rb->rf_blkno = cpu_to_le64(first_blkno);
|
||||
@@ -791,7 +792,10 @@ int ocfs2_remove_refcount_tree(struct inode *inode, struct buffer_head *di_bh)
|
||||
if (le32_to_cpu(rb->rf_count) == 1) {
|
||||
blk = le64_to_cpu(rb->rf_blkno);
|
||||
bit = le16_to_cpu(rb->rf_suballoc_bit);
|
||||
bg_blkno = ocfs2_which_suballoc_group(blk, bit);
|
||||
if (rb->rf_suballoc_loc)
|
||||
bg_blkno = le64_to_cpu(rb->rf_suballoc_loc);
|
||||
else
|
||||
bg_blkno = ocfs2_which_suballoc_group(blk, bit);
|
||||
|
||||
alloc_inode = ocfs2_get_system_file_inode(osb,
|
||||
EXTENT_ALLOC_SYSTEM_INODE,
|
||||
@@ -1283,7 +1287,7 @@ static int ocfs2_expand_inline_ref_root(handle_t *handle,
|
||||
int ret;
|
||||
u16 suballoc_bit_start;
|
||||
u32 num_got;
|
||||
u64 blkno;
|
||||
u64 suballoc_loc, blkno;
|
||||
struct super_block *sb = ocfs2_metadata_cache_get_super(ci);
|
||||
struct buffer_head *new_bh = NULL;
|
||||
struct ocfs2_refcount_block *new_rb;
|
||||
@@ -1297,7 +1301,7 @@ static int ocfs2_expand_inline_ref_root(handle_t *handle,
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = ocfs2_claim_metadata(OCFS2_SB(sb), handle, meta_ac, 1,
|
||||
ret = ocfs2_claim_metadata(handle, meta_ac, 1, &suballoc_loc,
|
||||
&suballoc_bit_start, &num_got,
|
||||
&blkno);
|
||||
if (ret) {
|
||||
@@ -1329,6 +1333,7 @@ static int ocfs2_expand_inline_ref_root(handle_t *handle,
|
||||
|
||||
new_rb = (struct ocfs2_refcount_block *)new_bh->b_data;
|
||||
new_rb->rf_suballoc_slot = cpu_to_le16(meta_ac->ac_alloc_slot);
|
||||
new_rb->rf_suballoc_loc = cpu_to_le64(suballoc_loc);
|
||||
new_rb->rf_suballoc_bit = cpu_to_le16(suballoc_bit_start);
|
||||
new_rb->rf_blkno = cpu_to_le64(blkno);
|
||||
new_rb->rf_cpos = cpu_to_le32(0);
|
||||
@@ -1523,7 +1528,7 @@ static int ocfs2_new_leaf_refcount_block(handle_t *handle,
|
||||
int ret;
|
||||
u16 suballoc_bit_start;
|
||||
u32 num_got, new_cpos;
|
||||
u64 blkno;
|
||||
u64 suballoc_loc, blkno;
|
||||
struct super_block *sb = ocfs2_metadata_cache_get_super(ci);
|
||||
struct ocfs2_refcount_block *root_rb =
|
||||
(struct ocfs2_refcount_block *)ref_root_bh->b_data;
|
||||
@@ -1547,7 +1552,7 @@ static int ocfs2_new_leaf_refcount_block(handle_t *handle,
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = ocfs2_claim_metadata(OCFS2_SB(sb), handle, meta_ac, 1,
|
||||
ret = ocfs2_claim_metadata(handle, meta_ac, 1, &suballoc_loc,
|
||||
&suballoc_bit_start, &num_got,
|
||||
&blkno);
|
||||
if (ret) {
|
||||
@@ -1575,6 +1580,7 @@ static int ocfs2_new_leaf_refcount_block(handle_t *handle,
|
||||
memset(new_rb, 0, sb->s_blocksize);
|
||||
strcpy((void *)new_rb, OCFS2_REFCOUNT_BLOCK_SIGNATURE);
|
||||
new_rb->rf_suballoc_slot = cpu_to_le16(meta_ac->ac_alloc_slot);
|
||||
new_rb->rf_suballoc_loc = cpu_to_le64(suballoc_loc);
|
||||
new_rb->rf_suballoc_bit = cpu_to_le16(suballoc_bit_start);
|
||||
new_rb->rf_fs_generation = cpu_to_le32(OCFS2_SB(sb)->fs_generation);
|
||||
new_rb->rf_blkno = cpu_to_le64(blkno);
|
||||
@@ -2105,6 +2111,7 @@ static int ocfs2_remove_refcount_extent(handle_t *handle,
|
||||
*/
|
||||
ret = ocfs2_cache_block_dealloc(dealloc, EXTENT_ALLOC_SYSTEM_INODE,
|
||||
le16_to_cpu(rb->rf_suballoc_slot),
|
||||
le64_to_cpu(rb->rf_suballoc_loc),
|
||||
le64_to_cpu(rb->rf_blkno),
|
||||
le16_to_cpu(rb->rf_suballoc_bit));
|
||||
if (ret) {
|
||||
@@ -3262,7 +3269,7 @@ static int ocfs2_make_clusters_writable(struct super_block *sb,
|
||||
} else {
|
||||
delete = 1;
|
||||
|
||||
ret = __ocfs2_claim_clusters(osb, handle,
|
||||
ret = __ocfs2_claim_clusters(handle,
|
||||
context->data_ac,
|
||||
1, set_len,
|
||||
&new_bit, &new_len);
|
||||
|
Reference in New Issue
Block a user