class LogEvent {
private:
__u32 _type;
- loff_t _start_off,_end_off;
+ uint64_t _start_off;
protected:
utime_t stamp;
public:
LogSegment *_segment;
- LogEvent(int t) :
- _type(t), _start_off(0), _end_off(0), _segment(0) { }
+ LogEvent(int t)
+ : _type(t), _start_off(0), _segment(0) { }
virtual ~LogEvent() { }
int get_type() { return _type; }
- loff_t get_start_off() { return _start_off; }
- loff_t get_end_off() { return _end_off; }
+ uint64_t get_start_off() const { return _start_off; }
+ void set_start_off(uint64_t o) { _start_off = o; }
utime_t get_stamp() const { return stamp; }
void set_stamp(utime_t t) { stamp = t; }
// -------------------------------------------------
+void MDLog::start_entry(LogEvent *e)
+{
+ assert(cur_event == NULL);
+ cur_event = e;
+ e->set_start_off(get_write_pos());
+}
+
void MDLog::submit_entry(LogEvent *le, Context *c)
{
assert(!mds->is_any_replay());
assert(!!"corrupt log event" == g_conf->mds_log_skip_corrupt_events);
continue;
}
+ le->set_start_off(pos);
// new segment?
if (le->get_type() == EVENT_SUBTREEMAP ||
private:
LogEvent *cur_event;
public:
- void start_entry(LogEvent *e) {
- assert(cur_event == NULL);
- cur_event = e;
- }
+ void start_entry(LogEvent *e);
void submit_entry(LogEvent *e, Context *c = 0);
void start_submit_entry(LogEvent *e, Context *c = 0) {
start_entry(e);