All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tao Ma <tao.ma@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 6/8] Add extent tree operation for xattr value.v1
Date: Fri, 13 Jun 2008 09:48:24 +0800	[thread overview]
Message-ID: <4851D1E8.7020609@oracle.com> (raw)
In-Reply-To: <20080612234412.GR28100@wotan.suse.de>

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

  reply	other threads:[~2008-06-13  1:48 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-05  7:16 [Ocfs2-devel] [PATCH 0/8] ocfs2: Add extended attributes for ocfs2. V1 Tao Ma
2008-06-05  7:24 ` [Ocfs2-devel] [PATCH 7/8] ocfs2: Add extended attributes support. v1 Tiger Yang
2008-06-13  3:22   ` Mark Fasheh
2008-06-16  7:18     ` Tao Ma
2008-06-16 10:22     ` Tiger Yang
2008-06-17 17:59       ` Mark Fasheh
2008-06-18  9:30         ` Tiger Yang
2008-06-17 23:32   ` Mark Fasheh
2008-06-27  7:49     ` Tiger Yang
2008-06-27 18:10       ` Mark Fasheh
2008-06-30  2:53         ` Tao Ma
2008-06-05  7:31 ` [Ocfs2-devel] [PATCH 1/8] Modify ocfs2_num_free_extents for future xattr usage.v1 Tao Ma
2008-06-05  7:32 ` [Ocfs2-devel] [PATCH 2/8] Use ocfs2_extent_list instead of ocfs2_dinode.v1 Tao Ma
2008-06-05  7:32 ` [Ocfs2-devel] [PATCH 3/8] Make ocfs2_lock_allocators generic for extent allocation.v1 Tao Ma
2008-06-11 23:31   ` Mark Fasheh
2008-06-12  1:40     ` Tao Ma
2008-06-12 23:51       ` Mark Fasheh
2008-06-05  7:33 ` [Ocfs2-devel] [PATCH 4/8] Make extend allocation generic.v1 Tao Ma
2008-06-12 20:59   ` Mark Fasheh
2008-06-13  2:08     ` Tao Ma
2008-06-05  7:33 ` [Ocfs2-devel] [PATCH 5/8] Add xattr header in ocfs2.v1 Tao Ma
2008-06-12 21:21   ` Mark Fasheh
2008-06-13  1:54     ` Tao Ma
2008-06-05  7:34 ` [Ocfs2-devel] [PATCH 6/8] Add extent tree operation for xattr value.v1 Tao Ma
2008-06-12 23:44   ` Mark Fasheh
2008-06-13  1:48     ` Tao Ma [this message]
2008-06-13  2:56       ` Mark Fasheh
2008-06-13  3:28         ` Tao Ma
2008-06-13  2:39   ` Mark Fasheh
2008-06-05  7:35 ` [Ocfs2-devel] [PATCH 8/8] Add large numbers of extended attributes support for ocfs2.v1 Tao Ma
2008-06-06  6:26   ` [Ocfs2-devel] [PATCH 8/8] (Imporved)Add " Tao Ma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4851D1E8.7020609@oracle.com \
    --to=tao.ma@oracle.com \
    --cc=ocfs2-devel@oss.oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.