diff --git a/ubifs-utils/fsck.ubifs/extract_files.c b/ubifs-utils/fsck.ubifs/extract_files.c index 2e47b42..7aeab67 100644 --- a/ubifs-utils/fsck.ubifs/extract_files.c +++ b/ubifs-utils/fsck.ubifs/extract_files.c @@ -1030,7 +1030,11 @@ int file_is_valid(struct ubifs_info *c, struct scanned_file *file, if (key_type(c, &dent_node->key) == UBIFS_XENT_KEY) is_xattr = 1; - if (is_xattr != file->ino.is_xattr || type != dent_node->type) + if (is_xattr != file->ino.is_xattr) + list_add(&dent_node->list, &drop_list); + else if (type != dent_node->type && + !(is_xattr && dent_node->type == UBIFS_ITYPE_DIR)) + /* Ensure backwards compatibility for ubifs partitions pre-v2.2.1 where type was "UBIFS_ITYPE_DIR" */ list_add(&dent_node->list, &drop_list); }