#include "ext4_config.h"
#include "ext4_blockdev.h"
-#include "ext4_rbtree.h"
+#include "tree.h"
#include <stdint.h>
void *data;
size_t data_size;
- struct ext4_rb_node node;
+ RB_ENTRY(ext4_xattr_item) node;
};
struct ext4_xattr_ref {
bool block_loaded;
struct ext4_block block;
struct ext4_inode_ref *inode_ref;
- struct ext4_rb_root root;
bool dirty;
+ size_t ea_size;
struct ext4_fs *fs;
+
+ struct ext4_xattr_item *iter_from;
+
+ RB_HEAD(ext4_xattr_tree,
+ ext4_xattr_item) root;
};
+#define EXT4_XATTR_ITERATE_CONT 0
+#define EXT4_XATTR_ITERATE_STOP 1
+#define EXT4_XATTR_ITERATE_PAUSE 2
+
#define EXT4_GOOD_OLD_INODE_SIZE 128
#define EXT4_XATTR_PAD_BITS 2
(char *)(entry) + EXT4_XATTR_LEN((entry)->e_name_len)))
#define EXT4_XATTR_SIZE(size) \
(((size) + EXT4_XATTR_ROUND) & ~EXT4_XATTR_ROUND)
+#define EXT4_XATTR_NAME(entry) \
+ ((char *)((entry) + 1))
#define EXT4_XATTR_IHDR(raw_inode) \
((struct ext4_xattr_ibody_header *) \