Fixup "MDS: CInode: add a fetch_backtrace() utility function"

Swap argument ordering.
Fixup "MDS: CInode::validate_disk_state()"

for the swapped fetch_backtrace argument order

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "MDS: add operator==() and compare() for inode_backtrace_t"

Remove extra semicolons; add comment for clarity; do not mistakenly
set *equivalent to true when *divergent.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "mdstypes: write inode_t::compare() function"

Added "a big fat comment in inode_t header so we don't
forget to update this method when new fields are added."

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "mdstypes: add a same_sums() function to nest_info_t"

Check rsnaprealms too.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "Continuation: Add a new Continuation class."

Add another line break in the comment for Sage.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
SQUASH: "mds: add an MDSInternalContextWrapper"

Also add an MDSIOContextWrapper

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "MDS: CInode::validate_disk_state()"

Additionally wrap in an MDSIOContextWrapper. Because we need to
take the MDS lock.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "MDS: CInode::validate_disk_state()"

Wrap the buffer decode in a try-catch.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "MDS: CInode::validate_disk_state()"

Look at the dirfragtree, not the already-in-memory CDir* fragtree.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "MDS: CInode::validate_disk_state()"

Add a bunch of error strings on early returns.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
SQUASH "MDS: CInode: implement dump_validation_results()"

Move it into validated_data::dump().

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
FIXUP "MDCache: make scrub_dentry schedulable and reentrant"

We moved CInode::dump_validation_results() -> validated_data::dump()

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "MDCache: make scrub_dentry schedulable and reentrant"

Do all the scrub results dumping underneath so MDS::command_scrub_path()
doesn't have to worry about it, not just the success path.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Fixup "Continuation: Add a new Continuation class."

Make a few changes to enable more sub-customization, like
for the MDSContinuation I'm adding.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Rebase: MDS: Add an MDSContinuation for ease of use

Unlike the regular Continuation, this one works in terms of an MDRequest
and has wrappers to provide Context callbacks that are either
internal MDS or IO appropriate.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
MDS: clean up internal MDRequests the standard way

All cleanup is now routed through respond_to_request(),
which invokes the internal_op_finish Context*, then does
mdcache->request_finish(). This is easier to reason about,
and indeed fixes a bug (I was not cleaning up locks
following flush). Use the MDSContinuation to facilitate
this in scrub's case.

Signed-off-by: Greg Farnum <gfarnum@redhat.com>