Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 131823
b: refs/heads/master
c: 4442f51
h: refs/heads/master
i:
  131821: ea20299
  131819: e659bf8
  131815: 2d863fd
  131807: 75c9a84
v: v3
  • Loading branch information
Tiger Yang authored and Mark Fasheh committed Feb 26, 2009
1 parent c18af09 commit 90bb2ac
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7
refs/heads/master: 4442f518269c6b3686fcbcadad22dc4475309b16
18 changes: 10 additions & 8 deletions trunk/fs/ocfs2/xattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,14 @@ struct ocfs2_xattr_set_ctxt {

#define OCFS2_XATTR_ROOT_SIZE (sizeof(struct ocfs2_xattr_def_value_root))
#define OCFS2_XATTR_INLINE_SIZE 80
#define OCFS2_XATTR_HEADER_GAP 4
#define OCFS2_XATTR_FREE_IN_IBODY (OCFS2_MIN_XATTR_INLINE_SIZE \
- sizeof(struct ocfs2_xattr_header) \
- sizeof(__u32))
- OCFS2_XATTR_HEADER_GAP)
#define OCFS2_XATTR_FREE_IN_BLOCK(ptr) ((ptr)->i_sb->s_blocksize \
- sizeof(struct ocfs2_xattr_block) \
- sizeof(struct ocfs2_xattr_header) \
- sizeof(__u32))
- OCFS2_XATTR_HEADER_GAP)

static struct ocfs2_xattr_def_value_root def_xv = {
.xv.xr_list.l_count = cpu_to_le16(1),
Expand Down Expand Up @@ -1511,7 +1512,7 @@ static int ocfs2_xattr_set_entry(struct inode *inode,
last += 1;
}

free = min_offs - ((void *)last - xs->base) - sizeof(__u32);
free = min_offs - ((void *)last - xs->base) - OCFS2_XATTR_HEADER_GAP;
if (free < 0)
return -EIO;

Expand Down Expand Up @@ -2194,7 +2195,7 @@ static int ocfs2_xattr_can_be_in_inode(struct inode *inode,
last += 1;
}

free = min_offs - ((void *)last - xs->base) - sizeof(__u32);
free = min_offs - ((void *)last - xs->base) - OCFS2_XATTR_HEADER_GAP;
if (free < 0)
return 0;

Expand Down Expand Up @@ -5065,8 +5066,8 @@ static int ocfs2_xattr_set_entry_index_block(struct inode *inode,
xh_free_start = le16_to_cpu(xh->xh_free_start);
header_size = sizeof(struct ocfs2_xattr_header) +
count * sizeof(struct ocfs2_xattr_entry);
max_free = OCFS2_XATTR_BUCKET_SIZE -
le16_to_cpu(xh->xh_name_value_len) - header_size;
max_free = OCFS2_XATTR_BUCKET_SIZE - header_size -
le16_to_cpu(xh->xh_name_value_len) - OCFS2_XATTR_HEADER_GAP;

mlog_bug_on_msg(header_size > blocksize, "bucket %llu has header size "
"of %u which exceed block size\n",
Expand Down Expand Up @@ -5099,7 +5100,7 @@ static int ocfs2_xattr_set_entry_index_block(struct inode *inode,
need = 0;
}

free = xh_free_start - header_size;
free = xh_free_start - header_size - OCFS2_XATTR_HEADER_GAP;
/*
* We need to make sure the new name/value pair
* can exist in the same block.
Expand Down Expand Up @@ -5132,7 +5133,8 @@ static int ocfs2_xattr_set_entry_index_block(struct inode *inode,
}

xh_free_start = le16_to_cpu(xh->xh_free_start);
free = xh_free_start - header_size;
free = xh_free_start - header_size
- OCFS2_XATTR_HEADER_GAP;
if (xh_free_start % blocksize < need)
free -= xh_free_start % blocksize;

Expand Down

0 comments on commit 90bb2ac

Please sign in to comment.