common/TrackedOp: make TrackedOp::reset_desc() safe
It is possible for a reset_desc() call to clear the desc char* while
get_desc() is executing such that it will return a nullptr to the caller.
This can lead to bad results, like a crash in std::string() (which does
not like to take null).
Fix this by not clearing desc. Instead, set a separate flag to indicate
that desc should be (safely) rebuilt on the next get_desc() call.
Fixes: http://tracker.ceph.com/issues/19110 Signed-off-by: Sage Weil <sage@redhat.com>