fsck.gfs2: Enforce consistent behavior in directory processing
In pass2, all directory entries are checked and validated by a huge,
confusing, hard-to-debug function called check_dentry. However,
when problems were found, there was inconsistent behavior regarding
the keeping and accounting for valid directories or deleting invalid
directories. But either a directory entry is good or it's not. If
it is invalid, no matter what the problem is, it should be treated
the same as all the other bad entries. If the directory is good,
or if fsck.gfs2 is instructed to ignore the problem, it should be
treated the same as all other good entries. To that end, this patch
introduces two centralized labels (dentry_is_valid and nuke_dentry).
Function check_dentry is simplified and its behavior made consistent
by introducing several gotos (oh, the shame) to those labels.
rhbz#455300