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

Method unlink

src/client/Client.cc:3791–3820  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3789}
3790
3791void Client::unlink(Dentry *dn, bool keepdir, bool keepdentry)
3792{
3793 InodeRef in(dn->inode);
3794 ldout(cct, 15) << "unlink dir " << dn->dir->parent_inode << " '" << dn->name << "' dn " << dn
3795 << " inode " << dn->inode << dendl;
3796
3797 // unlink from inode
3798 if (dn->inode) {
3799 dn->unlink();
3800 dec_dentry_nr();
3801 ldout(cct, 20) << "unlink inode " << in << " parents now " << in->dentries << dendl;
3802 }
3803
3804 if (keepdentry) {
3805 dn->lease_mds = -1;
3806 } else {
3807 ldout(cct, 15) << "unlink removing '" << dn->name << "' dn " << dn << dendl;
3808
3809 // unlink from dir
3810 Dir *dir = dn->dir;
3811 dn->detach();
3812
3813 // delete den
3814 lru.lru_remove(dn);
3815 dn->put();
3816
3817 if (dir->is_empty() && !keepdir)
3818 close_dir(dir);
3819 }
3820}
3821
3822/**
3823 * For asynchronous flushes, check for errors from the IO and

Callers 15

play_traceMethod · 0.45
clean_dirMethod · 0.45
make_filesMethod · 0.45
open_sharedMethod · 0.45
rm_fileMethod · 0.45
random_walkMethod · 0.45
fooMethod · 0.45
thrash_linksMethod · 0.45
move_filesFunction · 0.45
d3n_stateFunction · 0.45
_rm_clusterFunction · 0.45
migrate_sysctl_dirFunction · 0.45

Calls 4

detachMethod · 0.45
lru_removeMethod · 0.45
putMethod · 0.45
is_emptyMethod · 0.45

Tested by

no test coverage detected