Solution (source code)

= Solution

The <hard link> count in an <inode> duplicates information recoverable by counting <directory entries> that refer to its <inode number>. Keeping the count makes the last-name test fast: a <hard link> removal need not search every <file-system directory>. A <file-system consistency checker> can independently recount the references and compare the result with the stored value.

Likewise, a <block allocation bitmap> summarizes ownership information recoverable from allocated <inodes>, their <file data blocks>, their <indirect block pointers>, and reserved <file system> structures. This summary makes allocation efficient and supplies an independent consistency check against multiply allocated or lost blocks. Replicated superblock information is another possible form of <data redundancy>, helping recovery if one copy is damaged. These examples have distinct benefits: a cached count or allocation summary saves work, while an independent or replicated representation helps detect or repair corruption. Consistent updating is essential; redundancy alone does not make a <file system> crash-safe.
$$
\boxed{\text{redundancy supports efficient lookup, consistency checking and recovery.}}
$$