while (p != caps_callbacks.end()) {
if (used == 0 || (~(p->first) & used) == 0) {
// implemented.
- dout(10) << "used is " << cap_string(used)
+ dout(10) << "check_caps used is " << cap_string(used)
<< ", caps " << cap_string(p->first) << " implemented, doing callback(s)" << dendl;
finish_contexts(p->second);
map<int, list<Context*> >::iterator o = p;
p++;
caps_callbacks.erase(o);
} else {
- dout(10) << "used is " << cap_string(used)
+ dout(10) << "check_caps used is " << cap_string(used)
<< ", caps " << cap_string(p->first) << " not yet implemented" << dendl;
p++;
}
i != s.end();
i++) {
Object *ob = *i;
- if (!ob->data.empty()) return true;
+ for (map<off_t,BufferHead*>::iterator p = ob->data.begin();
+ p != ob->data.end();
+ p++) {
+ BufferHead *bh = p->second;
+ if (!bh->is_dirty() && !bh->is_tx())
+ return true;
+ }
}
return false;
i != s.end();
i++) {
Object *ob = *i;
-
+
for (map<off_t,BufferHead*>::iterator p = ob->data.begin();
p != ob->data.end();
p++) {
return true;
}
}
-
+
return false;
}