summaryrefslogtreecommitdiff
path: root/e2fsck/e2fsck.h
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2001-07-02 11:54:09 -0400
committerTheodore Ts'o <tytso@mit.edu>2001-07-02 11:54:09 -0400
commit342d847db355d81299218e07a1e58ece82080a04 (patch)
treed9d1ebd757a7caf7066a3d5e119691a615b27d18 /e2fsck/e2fsck.h
parent636a954a308aec91cf644f566d3e8a794a5dd8cb (diff)
downloade2fsprogs-342d847db355d81299218e07a1e58ece82080a04.tar.gz
Add initial support for extended attribute blocks
Diffstat (limited to 'e2fsck/e2fsck.h')
-rw-r--r--e2fsck/e2fsck.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h
index da41cca9..26f63cfc 100644
--- a/e2fsck/e2fsck.h
+++ b/e2fsck/e2fsck.h
@@ -127,6 +127,11 @@ struct resource_track {
#define E2F_PASS_1B 6
/*
+ * Define the extended attribute refcount structure
+ */
+typedef struct ea_refcount *ext2_refcount_t;
+
+/*
* This is the global e2fsck structure.
*/
typedef struct e2fsck_struct *e2fsck_t;
@@ -159,6 +164,7 @@ struct e2fsck_struct {
ext2fs_block_bitmap block_found_map; /* Blocks which are in use */
ext2fs_block_bitmap block_dup_map; /* Blks referenced more than once */
+ ext2fs_block_bitmap block_ea_map; /* Blocks which are used by EA's */
/*
* Inode count arrays
@@ -166,6 +172,9 @@ struct e2fsck_struct {
ext2_icount_t inode_count;
ext2_icount_t inode_link_info;
+ ext2_refcount_t refcount;
+ ext2_refcount_t refcount_extra;
+
/*
* Array of flags indicating whether an inode bitmap, block
* bitmap, or inode table is invalid
@@ -231,6 +240,8 @@ struct e2fsck_struct {
int fs_tind_count;
int fs_fragmented;
int large_files;
+ int fs_ext_attr_inodes;
+ int fs_ext_attr_blocks;
/*
* For the use of callers of the e2fsck functions; not used by
@@ -271,6 +282,20 @@ extern int e2fsck_get_num_dirs(e2fsck_t ctx);
extern int e2fsck_get_num_dirinfo(e2fsck_t ctx);
extern struct dir_info *e2fsck_dir_info_iter(e2fsck_t ctx, int *control);
+/* ea_refcount.c */
+extern errcode_t ea_refcount_create(int size, ext2_refcount_t *ret);
+extern void ea_refcount_free(ext2_refcount_t refcount);
+extern errcode_t ea_refcount_fetch(ext2_refcount_t refcount, blk_t blk,
+ int *ret);
+extern errcode_t ea_refcount_increment(ext2_refcount_t refcount,
+ blk_t blk, int *ret);
+extern errcode_t ea_refcount_decrement(ext2_refcount_t refcount,
+ blk_t blk, int *ret);
+extern errcode_t ea_refcount_store(ext2_refcount_t refcount,
+ blk_t blk, int count);
+extern void ea_refcount_intr_begin(ext2_refcount_t refcount);
+extern blk_t ea_refcount_intr_next(ext2_refcount_t refcount, int *ret);
+
/* ehandler.c */
extern const char *ehandler_operation(const char *op);
extern void ehandler_init(io_channel channel);