Skip to content

Commit

Permalink
ocfs2/xattr: Only extend xattr bucket in need.
Browse files Browse the repository at this point in the history
When the first block of a bucket is filled up with xattr
entries, we normally extend the bucket. But if we are
just replace one xattr with small length, we don't need
to extend it. This is important since we will calculate
what we need before the transaction and in this situation
no resources will be allocated.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
  • Loading branch information
Tao Ma authored and Mark Fasheh committed Jan 5, 2009
1 parent 757055a commit 976331d
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion fs/ocfs2/xattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -4564,7 +4564,9 @@ static int ocfs2_xattr_set_entry_index_block(struct inode *inode,
free, need, max_free, le16_to_cpu(xh->xh_free_start),
le16_to_cpu(xh->xh_name_value_len));

if (free < need || count == ocfs2_xattr_max_xe_in_bucket(inode->i_sb)) {
if (free < need ||
(xs->not_found &&
count == ocfs2_xattr_max_xe_in_bucket(inode->i_sb))) {
if (need <= max_free &&
count < ocfs2_xattr_max_xe_in_bucket(inode->i_sb)) {
/*
Expand Down

0 comments on commit 976331d

Please sign in to comment.