[Ocfs2-devel] [PATCH 04/39] ocfs2: Basic tree root operation.

Tao Ma tao.ma at oracle.com
Thu Apr 30 23:47:23 PDT 2009


Joel Becker Wrote:
> On Thu, Apr 30, 2009 at 06:58:16AM +0800, Tao Ma wrote:
>   
>> diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h
>> index 08196e0..bfd5942 100644
>> --- a/fs/ocfs2/journal.h
>> +++ b/fs/ocfs2/journal.h
>> @@ -482,6 +482,9 @@ static inline int ocfs2_calc_dxi_expand_credits(struct super_block *sb)
>>  	return credits;
>>  }
>>  
>> +#define OCFS2_REFCOUNT_TREE_CREATE_CREDITS (OCFS2_INODE_UPDATE_CREDITS + \
>> +					    + OCFS2_SUBALLOC_ALLOC + 1)
>> +#define OCFS2_REFCOUNT_TREE_SET_CREDITS (OCFS2_INODE_UPDATE_CREDITS + 1)
>>     
>
> 	Please put comments on these credits defines.  We want to know
> what each credit is for.
>   
Will do.
>   
>> +	BUG_ON(oi->ip_dyn_features & OCFS2_HAS_REFCOUNT_FL);
>> +	BUG_ON(di->i_refcount_loc);
>>     
>
> 	Don't BUG_ON(di->i_refcount_loc).  That's an on-disk structure
> that could be garbage, and there's no point in crashing becasue of it.
> We actually don't care if it is zero, because we know we're safe to
> attach the new refcount tree.  The same goes for set_tree.
>   
OK.
>   
>> +	rb = (struct ocfs2_refcount_block *)ref_root_bh->b_data;
>> +	le32_add_cpu(&rb->rf_count, 1);
>>     
>
> 	I see you have no locking for the refcount tree right now
> (spinlock or cluster lock).  I assume that's coming in a later patch.
>   
yeah, there will be a lock in the later patch.
>   
>> +int ocfs2_remove_refcount_tree(struct inode *inode, struct buffer_head *di_bh)
>> +{
>> +	int ret;
>> +	handle_t *handle = NULL;
>> +	struct ocfs2_dinode *di = (struct ocfs2_dinode *)di_bh->b_data;
>> +	struct ocfs2_inode_info *oi = OCFS2_I(inode);
>> +	struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
>> +	struct ocfs2_refcount_block *rb;
>> +	struct inode *alloc_inode = NULL;
>> +	struct buffer_head *alloc_bh = NULL;
>> +	struct buffer_head *blk_bh = NULL;
>> +	int credits = OCFS2_INODE_UPDATE_CREDITS + 1;
>>     
>
> 	This should be an OCFS2_REFCOUNT_TREE_REMOVE_CREDITS define,
> with appropriate comment.
>   
OK.

Regards,
Tao



More information about the Ocfs2-devel mailing list