MCPcopy Create free account
hub / github.com/ceph/ceph / remove_need_snapflush

Method remove_need_snapflush

src/mds/CInode.cc:397–419  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

395}
396
397void CInode::remove_need_snapflush(CInode *snapin, snapid_t snapid, client_t client)
398{
399 dout(10) << __func__ << " client." << client << " snapid " << snapid << " on " << snapin << dendl;
400 auto it = client_need_snapflush.find(snapid);
401 if (it == client_need_snapflush.end()) {
402 dout(10) << " snapid not found" << dendl;
403 return;
404 }
405 size_t n = it->second.erase(client);
406 if (n == 0) {
407 dout(10) << " client not found" << dendl;
408 return;
409 }
410 if (it->second.empty()) {
411 client_need_snapflush.erase(it);
412 snapin->auth_unpin(this);
413
414 if (client_need_snapflush.empty()) {
415 put(CInode::PIN_NEEDSNAPFLUSH);
416 auth_unpin(this);
417 }
418 }
419}
420
421pair<bool,bool> CInode::split_need_snapflush(CInode *cowin, CInode *in)
422{

Callers 2

_do_null_snapflushMethod · 0.80
handle_client_capsMethod · 0.80

Calls 6

putFunction · 0.70
findMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
emptyMethod · 0.45
auth_unpinMethod · 0.45

Tested by

no test coverage detected