This change consist of two primary changes.
A failure to vget or lookup an entry is considered to be a result of a concurrent removal,
which is the only resonable explanation given that the filesystem is busied.
So, the entry would be silently skipped.
In the case of a failure to get attributes of an entry for an NFSv3 request, the entry
would be silently skipped. There can be legitimate reasons for the failure, but NFSv3
does not provide any means to report the error, so we have two options: either fail the
whole request or ignore the failed entry. Traditionally, the old NFS server used the latter option,
so the code is reverted to it. Making the whole directory unreadable because of a single entry
seems to be unpractical.
Additionally, some bits of code are slightly re-arranged to account for the new control flow and
to honor style(9).
Sponsored by Panzura.