[Ocfs2-devel] [PATCH 06/14] ocfs2: Set the xattr name+value pair in one place
Tao Ma
tao.ma at oracle.com
Tue Sep 1 05:12:32 PDT 2009
Joel Becker wrote:
> On Tue, Sep 01, 2009 at 04:47:41PM +0800, Tao Ma wrote:
>
>> Joel Becker wrote:
>>
>>> On Tue, Sep 01, 2009 at 03:33:07PM +0800, Tao Ma wrote:
>>>
>>>> Joel Becker wrote:
>>>>
>>>>> + rc = ocfs2_xa_has_space(loc, xi);
>>>>> + if (rc)
>>>>> + goto out;
>>>>>
>>>> could you please add some comments here or change the function name.
>>>> when I read ocfs2_xa_has_space, I always think that "if we have
>>>> space, goto out". But actually we get 0 here if we have space.
>>>>
>>> A very good point. It really should be ocfs2_xa_space_needed().
>>> Does that work?
>>>
>> actually your function just return either -ENOSPC, -EIO or 0.
>> And we go ahead when we get 0. so maybe ocfs2_xa_check_space? So <0
>> means we meet with some errors and 0 means OK.
>>
>
> How's this?
>
looks good to me.
Regards,
Tao
> Joel
>
>
> diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
> index 2e8f5c6..b1d05ef 100644
> --- a/fs/ocfs2/xattr.c
> +++ b/fs/ocfs2/xattr.c
> @@ -156,8 +156,8 @@ struct ocfs2_xa_loc_operations {
> struct ocfs2_xattr_info *xi);
>
> /* How much space is needed for the new value? */
> - int (*xlo_has_space)(struct ocfs2_xa_loc *loc,
> - struct ocfs2_xattr_info *xi);
> + int (*xlo_check_space)(struct ocfs2_xa_loc *loc,
> + struct ocfs2_xattr_info *xi);
>
> /*
> * Return the offset of the first name+value pair. This is
> @@ -1519,8 +1519,8 @@ static int ocfs2_xattr_set_value_outside(struct inode *inode,
> return ret;
> }
>
> -static int ocfs2_xa_has_space_helper(int needed_space, int free_start,
> - int num_entries)
> +static int ocfs2_xa_check_space_helper(int needed_space, int free_start,
> + int num_entries)
> {
> int free_space;
>
> @@ -1569,10 +1570,10 @@ static int ocfs2_xa_can_reuse_entry(struct ocfs2_xa_loc *loc,
> }
>
> /* How much free space is needed to set the new value */
> -static int ocfs2_xa_has_space(struct ocfs2_xa_loc *loc,
> - struct ocfs2_xattr_info *xi)
> +static int ocfs2_xa_check_space(struct ocfs2_xa_loc *loc,
> + struct ocfs2_xattr_info *xi)
> {
> - return loc->xl_ops->xlo_has_space(loc, xi);
> + return loc->xl_ops->xlo_check_space(loc, xi);
> }
>
> static void ocfs2_xa_add_entry(struct ocfs2_xa_loc *loc, u32 name_hash)
> @@ -1639,8 +1639,8 @@ static int ocfs2_xa_block_get_free_start(struct ocfs2_xa_loc *loc)
> return free_start;
> }
>
> -static int ocfs2_xa_block_has_space(struct ocfs2_xa_loc *loc,
> - struct ocfs2_xattr_info *xi)
> +static int ocfs2_xa_block_check_space(struct ocfs2_xa_loc *loc,
> + struct ocfs2_xattr_info *xi)
> {
> int count = le16_to_cpu(loc->xl_header->xh_count);
> int free_start = ocfs2_xa_get_free_start(loc);
> @@ -1660,7 +1660,7 @@ static int ocfs2_xa_block_has_space(struct ocfs2_xa_loc *loc,
> }
> if (needed_space < 0)
> needed_space = 0;
> - return ocfs2_xa_has_space_helper(needed_space, free_start, count);
> + return ocfs2_xa_check_space_helper(needed_space, free_start, count);
> }
>
> /*
> @@ -1720,7 +1720,7 @@ static void ocfs2_xa_block_add_namevalue(struct ocfs2_xa_loc *loc, int size)
> */
> static const struct ocfs2_xa_loc_operations ocfs2_xa_block_loc_ops = {
> .xlo_offset_pointer = ocfs2_xa_block_offset_pointer,
> - .xlo_has_space = ocfs2_xa_block_has_space,
> + .xlo_check_space = ocfs2_xa_block_check_space,
> .xlo_can_reuse = ocfs2_xa_block_can_reuse,
> .xlo_get_free_start = ocfs2_xa_block_get_free_start,
> .xlo_wipe_namevalue = ocfs2_xa_block_wipe_namevalue,
> @@ -1770,8 +1768,8 @@ static int ocfs2_bucket_align_free_start(struct super_block *sb,
> return free_start;
> }
>
> -static int ocfs2_xa_bucket_has_space(struct ocfs2_xa_loc *loc,
> - struct ocfs2_xattr_info *xi)
> +static int ocfs2_xa_bucket_check_space(struct ocfs2_xa_loc *loc,
> + struct ocfs2_xattr_info *xi)
> {
> int count = le16_to_cpu(loc->xl_header->xh_count);
> int free_start = ocfs2_xa_get_free_start(loc);
> @@ -1796,7 +1794,7 @@ static int ocfs2_xa_bucket_has_space(struct ocfs2_xa_loc *loc,
> BUG_ON(needed_space < 0);
>
> free_start = ocfs2_bucket_align_free_start(sb, free_start, size);
> - return ocfs2_xa_has_space_helper(needed_space, free_start, count);
> + return ocfs2_xa_check_space_helper(needed_space, free_start, count);
> }
>
> static void ocfs2_xa_bucket_wipe_namevalue(struct ocfs2_xa_loc *loc)
> @@ -1859,7 +1857,7 @@ static void ocfs2_xa_bucket_add_namevalue(struct ocfs2_xa_loc *loc, int size)
> /* Operations for xattrs stored in buckets. */
> static const struct ocfs2_xa_loc_operations ocfs2_xa_bucket_loc_ops = {
> .xlo_offset_pointer = ocfs2_xa_bucket_offset_pointer,
> - .xlo_has_space = ocfs2_xa_bucket_has_space,
> + .xlo_check_space = ocfs2_xa_bucket_check_space,
> .xlo_can_reuse = ocfs2_xa_bucket_can_reuse,
> .xlo_get_free_start = ocfs2_xa_bucket_get_free_start,
> .xlo_wipe_namevalue = ocfs2_xa_bucket_wipe_namevalue,
> @@ -1916,7 +1914,7 @@ static int ocfs2_xa_prepare_entry(struct ocfs2_xa_loc *loc,
> goto out;
> }
>
> - rc = ocfs2_xa_has_space(loc, xi);
> + rc = ocfs2_xa_check_space(loc, xi);
> if (rc)
> goto out;
>
>
More information about the Ocfs2-devel
mailing list