# K1551–K1555: read-only dentry lookup lifetime The two-slot lookup table is owned by the VFS namespace. Each mounted volume owns one bounded UTF-8 entry name and inode number. Lookup returns a value token containing the slot, volume, inode, name, and the exact mount generation. It allocates no frame and publishes no mutable reference. | Operation | Valid state | Success | Failure and unchanged state | | --- | --- | --- | --- | | Construct | Two distinct nonzero volumes and inodes, valid names | Both slots mounted at generation 1 | `InvalidMount` or `InvalidName` | | Lookup | Active volume and matching name | Dentry token for that slot and generation | `NoMount` or `InvalidName` | | Validate | Active slot with matching volume, name, inode, and generation | Inode number | `Stale` | | Unmount | Active volume, generation can increment | Bump generation, then make slot inactive | `NoMount` or `GenerationOverflow` | | Remount | Inactive slot with the same volume | Slot active with its bumped generation | `NoMount` | The same name in two volumes resolves to each volume's own inode. An old token stays stale even if the original volume is remounted with the same name and inode. A generation overflow refuses unmount before changing the table. A failed lookup, validation, or unmount changes neither the table nor the other volume. This is a bounded in-memory read-only model; disk-backed inode loading, concurrent unmount, and product release acceptance remain separate work.