Not sure this was ever actually getting used, but
it would have had a problem if it was.
Signed-off-by: John Spray <john.spray@redhat.com>
public:
C_RetryRead(Journaler *l) : ls(l) {}
void finish(int r) {
- Mutex::Locker l(ls->lock);
+ // Should only be called from waitfor_safe i.e. already inside lock
+ assert(ls->lock.is_locked_by_me());
ls->_prefetch();
}
};
bool waiting_for_zero;
interval_set<uint64_t> pending_zero; // non-contig bits we've zeroed
std::set<uint64_t> pending_safe;
- // XXX this would be C_OnFinisher reather than Context if it weren't for use of C_RetryRead here
- // FIXME but oh dear, these are called back inside lock and RetryRead takes the lock!!!
std::map<uint64_t, std::list<Context*> > waitfor_safe; // when safe through given offset
void _flush(C_OnFinisher *onsafe);