ocfs2: Add extended attribute support
This patch implements storing extended attributes both in inode or a single external block. We only store EA's in-inode when blocksize > 512 or that inode block has free space for it. When an EA's value is larger than 80 bytes, we will store the value via b-tree outside inode or block. Signed-off-by: Tiger Yang <tiger.yang@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
This commit is contained in:
@@ -283,6 +283,9 @@ int ocfs2_journal_dirty_data(handle_t *handle,
|
||||
/* simple file updates like chmod, etc. */
|
||||
#define OCFS2_INODE_UPDATE_CREDITS 1
|
||||
|
||||
/* extended attribute block update */
|
||||
#define OCFS2_XATTR_BLOCK_UPDATE_CREDITS 1
|
||||
|
||||
/* group extend. inode update and last group update. */
|
||||
#define OCFS2_GROUP_EXTEND_CREDITS (OCFS2_INODE_UPDATE_CREDITS + 1)
|
||||
|
||||
@@ -340,6 +343,13 @@ int ocfs2_journal_dirty_data(handle_t *handle,
|
||||
#define OCFS2_RENAME_CREDITS (3 * OCFS2_INODE_UPDATE_CREDITS + 3 \
|
||||
+ OCFS2_UNLINK_CREDITS)
|
||||
|
||||
/* global bitmap dinode, group desc., relinked group,
|
||||
* suballocator dinode, group desc., relinked group,
|
||||
* dinode, xattr block */
|
||||
#define OCFS2_XATTR_BLOCK_CREATE_CREDITS (OCFS2_SUBALLOC_ALLOC * 2 + \
|
||||
+ OCFS2_INODE_UPDATE_CREDITS \
|
||||
+ OCFS2_XATTR_BLOCK_UPDATE_CREDITS)
|
||||
|
||||
/*
|
||||
* Please note that the caller must make sure that root_el is the root
|
||||
* of extent tree. So for an inode, it should be &fe->id2.i_list. Otherwise
|
||||
|
Reference in New Issue
Block a user