mds: fix data race on subvolume_metrics_map in MetricsHandler
The UnlockGuard in handle_payload() and update_rank0() had
function-wide scope, causing subvolume_metrics_map to be read
and written without the metrics lock held. This race between the
ms_dispatch thread (handle_payload) and the mds-metrics thread
(update_rank0) led to heap corruption under concurrent client
subvolume I/O.
Narrow the UnlockGuard scope to only the sections that need the
lock dropped (path resolution and rbytes fetch), ensuring
subvolume_metrics_map is always accessed under lock.
Confirmed with TSAN: 8 data races before fix, 0 after.
Fixes: https://tracker.ceph.com/issues/75343 Signed-off-by: Igor Golikov <igolikov@ibm.com>