Hi Mark,

Mark Fasheh wrote:
> On Thu, Jun 05, 2008 at 03:34:37PM +0800, Tao Ma wrote:
>> @@ -4199,7 +4246,8 @@ int ocfs2_insert_extent(struct ocfs2_super *osb,
>>                      u32 new_clusters,
>>                      u8 flags,
>>                      struct ocfs2_alloc_context *meta_ac,
>> -                    enum ocfs2_extent_tree_type et_type)
>> +                    enum ocfs2_extent_tree_type et_type,
>> +                    void *private)
> 
> Hmm, at this point, wouldn't it make sense to have a couple high-level
> "ocfs2_foo_insert_extent" functions whcih build up anm ocfs2_extent_tree and
> then pass it down to the common ocfs2_insert_extent?
Why do we need that? Just to reduce the parameter to one 
"ocfs2_extent_tree *"? ;) Any other benefit?
> 
> 
>> +static int ocfs2_xattr_value_truncate(struct inode *inode,
>> +                                  struct buffer_head *root_bh,
>> +                                  struct ocfs2_xattr_value_root *xv,
>> +                                  int len)
>> +{
>> +    int ret;
>> +    u32 new_clusters = ocfs2_clusters_for_bytes(inode->i_sb, len);
>> +    u32 old_clusters = le32_to_cpu(xv->xr_clusters);
>> +
>> +    if (new_clusters == old_clusters)
>> +            return 0;
>> +
>> +    if (new_clusters > old_clusters)
>> +            ret = ocfs2_xattr_extend_allocation(inode,
>> +                                                new_clusters - old_clusters,
>> +                                                root_bh, xv);
>> +    else
>> +            ret = ocfs2_xattr_shrink_size(inode,
>> +                                          old_clusters, new_clusters,
>> +                                          root_bh, xv);
> 
> If we shrink the xattr value, do you need to zero the area between the new
> size and the end of the last cluster? We do it for inodes because a later
> extend might expose the data which was trucated. But I think EA's don't have
> that equivalent operation?
Yes, that is the reason I do this. In EA, I think normally when we 
extend it by setting larger values, we will definitely set the content. 
So we can't extend a EA without setting the value here like we do in inodes

Regards,
Tao

_______________________________________________
Ocfs2-devel mailing list
[email protected]
http://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to