These errors trickle up to boot_start from e.g.
CInode::_fetched when something goes wrong.
Signed-off-by: John Spray <john.spray@redhat.com>
dout(0) << "boot_start encountered an error EAGAIN"
<< ", respawning since we fell behind journal" << dendl;
respawn();
+ } else if (r == -EINVAL || r == -ENOENT) {
+ // Invalid or absent data, indicates damaged on-disk structures
+ clog->error() << "Error loading MDS rank " << whoami << ": "
+ << cpp_strerror(r);
+ damaged();
+ assert(r == 0); // Unreachable, damaged() calls respawn()
} else {
+ // Completely unexpected error, give up and die
dout(0) << "boot_start encountered an error, failing" << dendl;
suicide();
return;