- Fix lte_decrement_refcnt() assertion
- Assign inode numbers to new directories
struct lookup_table_entry *
lte_decrement_refcnt(struct lookup_table_entry *lte, struct lookup_table *table)
{
struct lookup_table_entry *
lte_decrement_refcnt(struct lookup_table_entry *lte, struct lookup_table *table)
{
- wimlib_assert(lte->refcnt);
- if (lte && --lte->refcnt == 0) {
- lookup_table_unlink(table, lte);
- if (lte->num_opened_fds == 0) {
- free_lookup_table_entry(lte);
- lte = NULL;
+ if (lte) {
+ wimlib_assert(lte->refcnt);
+ if (--lte->refcnt == 0) {
+ lookup_table_unlink(table, lte);
+ if (lte->num_opened_fds == 0) {
+ free_lookup_table_entry(lte);
+ lte = NULL;
+ }
newdir = new_dentry(basename);
newdir->attributes |= FILE_ATTRIBUTE_DIRECTORY;
newdir->resolved = true;
newdir = new_dentry(basename);
newdir->attributes |= FILE_ATTRIBUTE_DIRECTORY;
newdir->resolved = true;
+ newdir->hard_link = next_link_group_id++;
link_dentry(newdir, parent);
return 0;
}
link_dentry(newdir, parent);
return 0;
}