-/* Hard link group; it's identified by its hard link group ID and points to a
- * circularly linked list of dentries. */
-struct link_group {
- u64 link_group_id;
-
- /* Pointer to use to make a singly-linked list of link groups. */
- struct link_group *next;
-
- /* This is a pointer to the circle and not part of the circle itself.
- * This makes it easy to iterate through other dentries hard-linked to a
- * given dentry without having to find the "head" of the list first. */
- struct list_head *dentry_list;
-};
-
-/* Hash table to find hard link groups, identified by their hard link group ID.
- * */
-struct link_group_table {
- /* Fields for the hash table */
- struct link_group **array;
- u64 num_entries;
- u64 capacity;
-
- /*
- * Linked list of "extra" groups. These may be:
- *
- * - Hard link groups of size 1, which are all allowed to have 0 for
- * their hard link group ID, meaning we cannot insert them into the
- * hash table before calling assign_link_group_ids().
- *
- * - Groups we create ourselves by splitting a nominal hard link group
- * due to inconsistencies in the dentries. These groups will share a
- * hard link group ID with some other group until
- * assign_link_group_ids() is called.
- */
- struct link_group *extra_groups;
-};
-
-/* Returns pointer to a new link group table having the specified capacity */
-struct link_group_table *new_link_group_table(size_t capacity)