request->unsafe_item.remove_myself();
request->unsafe_dir_item.remove_myself();
request->unsafe_target_item.remove_myself();
- signal_cond_list(request->waitfor_safe);
+ signal_context_list(request->waitfor_safe);
}
request->item.remove_myself();
unregister_request(request);
++p) {
MetaRequest *req = *p;
if (req->unsafe_item.is_on_list())
- wait_on_list(req->waitfor_safe);
+ wait_on_context_list(req->waitfor_safe);
put_request(req);
}
}
<< in->ino << " " << req->get_tid() << dendl;
req->unsafe_target_item.remove_myself();
}
- signal_cond_list(req->waitfor_safe);
+ signal_context_list(req->waitfor_safe);
unregister_request(req);
}
}
ldout(cct, 10) << __func__ << " finishing pending cap_snap on " << *in << dendl;
in->cap_snaps.rbegin()->second.writing = 0;
finish_cap_snap(in, in->cap_snaps.rbegin()->second, get_caps_used(in));
- signal_cond_list(in->waitfor_caps); // wake up blocked sync writers
+ signal_context_list(in->waitfor_caps); // wake up blocked sync writers
}
if (last & CEPH_CAP_FILE_BUFFER) {
for (auto &p : in->cap_snaps)
p.second.dirty_data = 0;
- signal_cond_list(in->waitfor_commit);
+ signal_context_list(in->waitfor_commit);
ldout(cct, 5) << __func__ << " dropped last FILE_BUFFER ref on " << *in << dendl;
++put_nref;
}
if (waitfor_caps)
- wait_on_list(in->waitfor_caps);
+ wait_on_context_list(in->waitfor_caps);
else if (waitfor_commit)
- wait_on_list(in->waitfor_commit);
+ wait_on_context_list(in->waitfor_commit);
}
}
in.flags |= I_CAP_DROPPED;
}
}
- signal_cond_list(in.waitfor_caps);
+ signal_context_list(in.waitfor_caps);
}
}
}
if (issued & ~old_caps)
- signal_cond_list(in->waitfor_caps);
+ signal_context_list(in->waitfor_caps);
}
void Client::remove_cap(Cap *cap, bool queue_release)
_schedule_invalidate_callback(in.get(), 0, 0);
}
- signal_cond_list(in->waitfor_caps);
+ signal_context_list(in->waitfor_caps);
}
s->flushing_caps_tids.clear();
sync_cond.notify_all();
for (xlist<Cap*>::iterator p = s->caps.begin(); !p.end(); ++p) {
auto &in = (*p)->inode;
if (in.caps_wanted() & CEPH_CAP_FILE_WR)
- signal_cond_list(in.waitfor_caps);
+ signal_context_list(in.waitfor_caps);
}
}
ldout(cct, 10) << __func__ << " on " << *in << " flushing "
<< ccap_string(it->second) << " want " << want
<< " last " << it->first << dendl;
- wait_on_list(in->waitfor_caps);
+ wait_on_context_list(in->waitfor_caps);
}
}
<< " with " << ccap_string(dirty) << dendl;
if (flushed) {
- signal_cond_list(in->waitfor_caps);
+ signal_context_list(in->waitfor_caps);
if (session->flushing_caps_tids.empty() ||
*session->flushing_caps_tids.begin() > flush_ack_tid)
sync_cond.notify_all();
in->flushing_cap_item.remove_myself();
in->cap_snaps.erase(it);
- signal_cond_list(in->waitfor_caps);
+ signal_context_list(in->waitfor_caps);
if (session->flushing_caps_tids.empty() ||
*session->flushing_caps_tids.begin() > flush_ack_tid)
sync_cond.notify_all();
// wake up waiters
if (new_caps)
- signal_cond_list(in->waitfor_caps);
+ signal_context_list(in->waitfor_caps);
// may drop inode's last ref
if (deleted_inode)
if (have_caps) {
clnt->put_cap_ref(in, CEPH_CAP_FILE_RD);
}
+
if (movepos) {
clnt->unlock_fh_pos(f);
}
ldout(cct, 15) << "waiting on unsafe requests, last tid " << req->get_tid() << dendl;
req->get();
- wait_on_list(req->waitfor_safe);
+ wait_on_context_list(req->waitfor_safe);
put_request(req);
}
while (in->cap_refs[CEPH_CAP_FILE_BUFFER] > 0) {
ldout(cct, 10) << "ino " << in->ino << " has " << in->cap_refs[CEPH_CAP_FILE_BUFFER]
<< " uncommitted, waiting" << dendl;
- wait_on_list(in->waitfor_commit);
+ wait_on_context_list(in->waitfor_commit);
}
}