#include "crimson/osd/object_context_loader.h"
#include "osd/osd_types_fmt.h"
+#include "osd/object_state_fmt.h"
SET_SUBSYS(osd);
return std::invoke(std::move(func), obc);
}
).finally([FNAME, this, obc=ObjectContextRef(obc)] {
- DEBUGDPP("released object {}", dpp, obc->get_oid());
+ DEBUGDPP("released object {}, {}", dpp, obc->get_oid(), obc->obs);
if constexpr (track) {
obc->remove_from(obc_set_accessing);
}
return std::invoke(std::move(func), obc);
}
).finally([FNAME, this, obc=ObjectContextRef(obc)] {
- DEBUGDPP("released object {}", dpp, obc->get_oid());
+ DEBUGDPP("released object {}, {}", dpp, obc->get_oid(), obc->obs);
if constexpr (track) {
obc->remove_from(obc_set_accessing);
}
#include "replicated_recovery_backend.h"
#include "ec_backend.h"
#include "exceptions.h"
+#include "osd/object_state_fmt.h"
namespace {
seastar::logger& logger() {
ceph::os::Transaction& txn,
object_stat_sum_t& delta_stats)
{
+ logger().debug("{} obc existed: {}, osd_op {}", __func__, os, osd_op);
if (os.exists && !os.oi.is_whiteout() &&
(osd_op.op.flags & CEPH_OSD_OP_FLAG_EXCL)) {
// this is an exclusive create
}
};
std::ostream& operator<<(std::ostream& out, const OSDOp& op);
+template <> struct fmt::formatter<OSDOp> : fmt::ostream_formatter {};
struct pg_log_op_return_item_t {
int32_t rval;