We shouldn't have separate implementations of this and lookup_ino(inodeno_t ino). Unless combining them requires more code than combining them, but it should be easy to cast that one in terms of discarding the Inode** or using a null pointer.