Whamcloud - gitweb
e2fsck: allow deleting or zeroing shared blocks
[tools/e2fsprogs.git] / e2fsck / e2fsck.h
index ca414cc..befb683 100644 (file)
@@ -171,6 +171,8 @@ struct resource_track {
 #define E2F_OPT_CONVERT_BMAP   0x4000 /* convert blockmap to extent */
 #define E2F_OPT_FIXES_ONLY     0x8000 /* skip all optimizations */
 #define E2F_OPT_NOOPT_EXTENTS  0x10000 /* don't optimize extents */
+#define E2F_OPT_ICOUNT_FULLMAP 0x20000 /* use an array for inode counts */
+#define E2F_OPT_UNSHARE_BLOCKS  0x40000
 
 /*
  * E2fsck flags
@@ -208,6 +210,17 @@ struct resource_track {
 #define E2F_PASS_5     5
 #define E2F_PASS_1B    6
 
+enum shared_opt {
+       E2F_SHARED_PRESERVE = 0,
+       E2F_SHARED_DELETE,
+       E2F_SHARED_LPF
+};
+
+enum clone_opt {
+       E2F_CLONE_DUP = 0,
+       E2F_CLONE_ZERO
+};
+
 /*
  * Define the extended attribute refcount structure
  */
@@ -382,6 +395,8 @@ struct e2fsck_struct {
        time_t now;
        time_t time_fudge;      /* For working around buggy init scripts */
        int ext_attr_ver;
+       enum shared_opt shared;
+       enum clone_opt clone;
        profile_t       profile;
        int blocks_per_page;
        ext2_u32_list encrypted_dirs;
@@ -522,6 +537,7 @@ extern void set_up_logging(e2fsck_t ctx);
 
 /* quota.c */
 extern void e2fsck_hide_quota(e2fsck_t ctx);
+extern void e2fsck_validate_quota_inodes(e2fsck_t ctx);
 
 /* pass1.c */
 extern errcode_t e2fsck_setup_icount(e2fsck_t ctx, const char *icount_name,
@@ -540,10 +556,6 @@ extern void e2fsck_intercept_block_allocations(e2fsck_t ctx);
 /* pass2.c */
 extern int e2fsck_process_bad_inode(e2fsck_t ctx, ext2_ino_t dir,
                                    ext2_ino_t ino, char *buf);
-extern int get_filename_hash(ext2_filsys fs, int encrypted, int version,
-                            const char *name, int len,
-                            ext2_dirhash_t *ret_hash,
-                            ext2_dirhash_t *ret_minor_hash);
 
 /* pass3.c */
 extern int e2fsck_reconnect_file(e2fsck_t ctx, ext2_ino_t inode);
@@ -636,7 +648,8 @@ extern blk64_t get_backup_sb(e2fsck_t ctx, ext2_filsys fs,
                           const char *name, io_manager manager);
 extern int ext2_file_type(unsigned int mode);
 extern int write_all(int fd, char *buf, size_t count);
-void dump_mmp_msg(struct mmp_struct *mmp, const char *msg);
+void dump_mmp_msg(struct mmp_struct *mmp, const char *fmt, ...)
+       E2FSCK_ATTR((format(printf, 2, 3)));
 errcode_t e2fsck_mmp_update(ext2_filsys fs);
 
 extern void e2fsck_set_bitmap_type(ext2_filsys fs,