auto mds = get_mds(); // to keep dout happy
auto in = mds->server->rdlock_path_pin_ref(mdr, true);
+ ceph_assert(in != nullptr);
+
if (r) {
dout(20) << "(uninline_data) log submission failed; r=" << r
- << " (" << cpp_strerror(r) << ")" << dendl;
+ << " (" << cpp_strerror(r) << ") for " << *in << dendl;
} else {
- dout(20) << "(uninline_data) log submission succeeded" << dendl;
+ dout(20) << "(uninline_data) log submission succeeded for " << *in << dendl;
+ in->mdcache->logger->inc(l_mdc_uninline_succeeded);
}
mdr->apply();
// return faster if operation has failed (non-zero) status
if (r) {
derr << "(uninline_data) mutation failed: r=" << r
- << "(" << cpp_strerror(r) << ")" << dendl;
+ << " (" << cpp_strerror(r) << ") for " << *in << dendl;
+ in->mdcache->logger->inc(l_mdc_uninline_write_failed);
mds->server->respond_to_request(mdr, r);
return;
}
return;
}
+ logger->inc(l_mdc_uninline_started);
+
auto ino = [&]() { return in->ino(); };
auto pi = in->get_projected_inode();
auto objecter = mds->objecter;
pcb.add_u64_counter(l_mdss_ireq_inodestats, "ireq_inodestats",
"Internal Request type inode stats");
+ // uninline op stats
+ pcb.add_u64_counter(l_mdc_uninline_started, "uninline_started",
+ "Internal Counter type uninline started");
+ pcb.add_u64_counter(l_mdc_uninline_succeeded, "uninline_succeeded",
+ "Internal Counter type uninline succeeded");
+ pcb.add_u64_counter(l_mdc_uninline_write_failed, "uninline_write_failed",
+ "Internal Counter type uninline write failed");
+
logger.reset(pcb.create_perf_counters());
g_ceph_context->get_perfcounters_collection()->add(logger.get());
recovery_queue.set_logger(logger.get());
l_mdss_ireq_fragstats,
l_mdss_ireq_inodestats,
+ l_mdc_uninline_started,
+ l_mdc_uninline_succeeded,
+ l_mdc_uninline_write_failed,
+
l_mdc_last,
};
friend class C_MDC_FragmentCommit;
friend class C_MDC_FragmentRollback;
friend class C_IO_MDC_FragmentPurgeOld;
+ friend class C_IO_DataUninlined;
+ friend class C_MDC_DataUninlinedSubmitted;
// -- subtrees --
static const unsigned int SUBTREES_COUNT_THRESHOLD = 5;