X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fhardlink.c;h=da91ac43800f6ed1f2799df4ee73a3d3f43aa508;hp=45217fdf8c824dfe8024c58154e46bf5d515797f;hb=14baa6ae892debbaa18dba8119931580efd0e517;hpb=7acdc3aecd7ce546727ae8239e0d942c2a00db43 diff --git a/src/hardlink.c b/src/hardlink.c index 45217fdf..da91ac43 100644 --- a/src/hardlink.c +++ b/src/hardlink.c @@ -72,12 +72,8 @@ struct wim_inode_table { struct hlist_head extra_inodes; }; -static inline void destroy_inode_table(struct wim_inode_table *table) -{ - FREE(table->array); -} - -static int init_inode_table(struct wim_inode_table *table, size_t capacity) +static int +init_inode_table(struct wim_inode_table *table, size_t capacity) { table->array = CALLOC(capacity, sizeof(table->array[0])); if (!table->array) { @@ -90,7 +86,14 @@ static int init_inode_table(struct wim_inode_table *table, size_t capacity) return 0; } -static inline size_t inode_link_count(const struct wim_inode *inode) +static inline void +destroy_inode_table(struct wim_inode_table *table) +{ + FREE(table->array); +} + +static inline size_t +inode_link_count(const struct wim_inode *inode) { const struct list_head *cur; size_t size = 0; @@ -102,9 +105,10 @@ static inline size_t inode_link_count(const struct wim_inode *inode) /* Insert a dentry into the inode table based on the inode number of the * attached inode (which came from the hard link group ID field of the on-disk * WIM dentry) */ -static int inode_table_insert(struct wim_dentry *dentry, void *__table) +static int +inode_table_insert(struct wim_dentry *dentry, void *_table) { - struct wim_inode_table *table = __table; + struct wim_inode_table *table = _table; struct wim_inode *d_inode = dentry->d_inode; if (d_inode->i_ino == 0) { @@ -146,25 +150,30 @@ static int inode_table_insert(struct wim_dentry *dentry, void *__table) return 0; } -static void print_inode_dentries(const struct wim_inode *inode) +#ifdef ENABLE_ERROR_MESSAGES +static void +print_inode_dentries(const struct wim_inode *inode) { struct wim_dentry *dentry; inode_for_each_dentry(dentry, inode) - printf("`%s'\n", dentry->full_path_utf8); + printf("`%s'\n", dentry->full_path); } +#endif -static void inconsistent_inode(const struct wim_inode *inode) +static void +inconsistent_inode(const struct wim_inode *inode) { +#ifdef ENABLE_ERROR_MESSAGES ERROR("An inconsistent hard link group that cannot be corrected has " "been detected"); ERROR("The dentries are located at the following paths:"); -#ifdef ENABLE_ERROR_MESSAGES print_inode_dentries(inode); #endif } -static bool ref_inodes_consistent(const struct wim_inode * restrict ref_inode_1, - const struct wim_inode * restrict ref_inode_2) +static bool +ref_inodes_consistent(const struct wim_inode * restrict ref_inode_1, + const struct wim_inode * restrict ref_inode_2) { wimlib_assert(ref_inode_1 != ref_inode_2); @@ -187,8 +196,9 @@ static bool ref_inodes_consistent(const struct wim_inode * restrict ref_inode_1, return true; } -static bool inodes_consistent(const struct wim_inode * restrict ref_inode, - const struct wim_inode * restrict inode) +static bool +inodes_consistent(const struct wim_inode * restrict ref_inode, + const struct wim_inode * restrict inode) { wimlib_assert(ref_inode != inode); @@ -212,7 +222,8 @@ static bool inodes_consistent(const struct wim_inode * restrict ref_inode, } /* Fix up a "true" inode and check for inconsistencies */ -static int fix_true_inode(struct wim_inode *inode, struct hlist_head *inode_list) +static int +fix_true_inode(struct wim_inode *inode, struct hlist_head *inode_list) { struct wim_dentry *dentry; struct wim_dentry *ref_dentry = NULL; @@ -274,8 +285,8 @@ static int fix_true_inode(struct wim_inode *inode, struct hlist_head *inode_list * wim_inode's. There will be just one `struct wim_inode' for each hard link * group remaining. */ -static int fix_nominal_inode(struct wim_inode *inode, - struct hlist_head *inode_list) +static int +fix_nominal_inode(struct wim_inode *inode, struct hlist_head *inode_list) { struct wim_dentry *dentry; struct hlist_node *cur, *tmp; @@ -393,8 +404,8 @@ next_dentry_2: return 0; } -static int fix_inodes(struct wim_inode_table *table, - struct hlist_head *inode_list) +static int +fix_inodes(struct wim_inode_table *table, struct hlist_head *inode_list) { struct wim_inode *inode; struct hlist_node *cur, *tmp; @@ -440,7 +451,8 @@ static int fix_inodes(struct wim_inode_table *table, * failure. On success, the list of "true" inodes, linked by the i_hlist field, * is returned in the hlist @inode_list. */ -int dentry_tree_fix_inodes(struct wim_dentry *root, struct hlist_head *inode_list) +int +dentry_tree_fix_inodes(struct wim_dentry *root, struct hlist_head *inode_list) { struct wim_inode_table inode_tab; int ret; @@ -460,7 +472,8 @@ int dentry_tree_fix_inodes(struct wim_dentry *root, struct hlist_head *inode_lis /* Assign inode numbers to a list of inodes and return the next available * number. */ -u64 assign_inode_numbers(struct hlist_head *inode_list) +u64 +assign_inode_numbers(struct hlist_head *inode_list) { DEBUG("Assigning inode numbers"); struct wim_inode *inode;