1 From: Tiger Yang <tiger.yang@oracle.com>
2 Date: Fri, 6 Mar 2009 10:19:30 +0800
3 Subject: [PATCH] ocfs2: reserve xattr block for new directory with inline data
6 If this is a new directory with inline data, we choose to
7 reserve the entire inline area for directory contents and
8 force an external xattr block.
10 Signed-off-by: Tiger Yang <tiger.yang@oracle.com>
11 Acked-by: Joel Becker <joel.becker@oracle.com>
12 Signed-off-by: Mark Fasheh <mfasheh@suse.com>
14 fs/ocfs2/xattr.c | 4 ++++
15 1 files changed, 4 insertions(+), 0 deletions(-)
17 Index: linux-2.6.27-sle11_ocfs2_update2/fs/ocfs2/xattr.c
18 ===================================================================
19 --- linux-2.6.27-sle11_ocfs2_update2.orig/fs/ocfs2/xattr.c
20 +++ linux-2.6.27-sle11_ocfs2_update2/fs/ocfs2/xattr.c
21 @@ -450,8 +450,12 @@ int ocfs2_calc_xattr_init(struct inode *
22 * when blocksize = 512, may reserve one more cluser for
23 * xattr bucket, otherwise reserve one metadata block
25 + * If this is a new directory with inline data,
26 + * we choose to reserve the entire inline area for
27 + * directory contents and force an external xattr block.
29 if (dir->i_sb->s_blocksize == OCFS2_MIN_BLOCKSIZE ||
30 + (S_ISDIR(mode) && ocfs2_supports_inline_data(osb)) ||
31 (s_size + a_size) > OCFS2_XATTR_FREE_IN_IBODY) {
32 ret = ocfs2_reserve_new_metadata_blocks(osb, 1, xattr_ac);