ocfs2/xattr: Only extend xattr bucket in need.
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>
This commit is contained in:
parent
757055adc5
commit
976331d878
@ -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)) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user