friend ostream& operator<<(ostream& out, const MapsCollectionStatus& sf);
};
+
} // namespace Scrub
+
/**
* the scrub operation flags. Primary only.
* Set at scrub start. Checked in multiple locations - mostly
scrub_ls_result_t& res_inout) const override
{
return false;
- };
+ }
+ int asok_debug(std::string_view cmd,
+ std::string param,
+ Formatter* f,
+ stringstream& ss) override;
+ int m_debug_blockrange{0};
+
// -------------------------------------------------------------------------------------------
// the I/F used by the state-machine (i.e. the implementation of ScrubMachineListener)
- bool select_range() final;
+ void select_range_n_notify() final;
+ Scrub::BlockedRangeWarning acquire_blocked_alarm() final;
+
/// walk the log to find the latest update that affects our chunk
eversion_t search_log_for_updates() const final;
struct ScrubMachineListener {
- virtual ~ScrubMachineListener(){};
+ struct MsgAndEpoch {
+ MessageRef m_msg;
+ epoch_t m_epoch;
+ };
- virtual bool select_range() = 0;
+ virtual ~ScrubMachineListener() = default;
+
+ virtual void select_range_n_notify() = 0;
+ virtual Scrub::BlockedRangeWarning acquire_blocked_alarm() = 0;
+
/// walk the log to find the latest update that affects our chunk
virtual eversion_t search_log_for_updates() const = 0;