diff options
author | Sage Weil <sage@newdream.net> | 2009-04-04 20:51:21 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-04-04 20:51:21 -0700 |
commit | b70721e4e77957cf9825f9c82944fff55b085f6c (patch) | |
tree | fe48cb46a8ddccefe572560608a57f18cdd55347 | |
parent | 2c822fff06f350e815ac806a8124b9f65c583a4b (diff) | |
download | ceph-b70721e4e77957cf9825f9c82944fff55b085f6c.tar.gz |
mds: simplify EMetaBlob interface - don't pass explicit inode_t pointer
It is always in->get_projected_inode().
-rw-r--r-- | src/mds/Locker.cc | 2 | ||||
-rw-r--r-- | src/mds/MDCache.cc | 10 | ||||
-rw-r--r-- | src/mds/Server.cc | 28 | ||||
-rw-r--r-- | src/mds/events/EMetaBlob.h | 8 | ||||
-rw-r--r-- | src/mds/events/EOpen.h | 3 |
5 files changed, 25 insertions, 26 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 2b5022f4824..1e0a19c9371 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -1359,7 +1359,7 @@ bool Locker::check_inode_max_size(CInode *in, bool force_wrlock, bool update_siz mdcache->predirty_journal_parents(mut, metablob, in, 0, PREDIRTY_PRIMARY); // no cow, here! CDentry *parent = in->get_projected_parent_dn(); - metablob->add_primary_dentry(parent, true, in, in->get_projected_inode()); + metablob->add_primary_dentry(parent, true, in); } else { metablob->add_dir_context(in->get_projected_parent_dn()->get_dir()); mdcache->journal_dirty_inode(mut, metablob, in); diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 2fd02ea6f73..7eed98fbe93 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -357,7 +357,7 @@ void MDCache::_create_system_file(CDir *dir, const char *name, CInode *in, Conte EUpdate *le = new EUpdate(mds->mdlog, "create system file"); predirty_journal_parents(mut, &le->metablob, in, dir, PREDIRTY_PRIMARY|PREDIRTY_DIR, 1); - le->metablob.add_primary_dentry(dn, true, in, &in->inode); + le->metablob.add_primary_dentry(dn, true, in); if (mdir) le->metablob.add_dir(mdir, true, true, true); // dirty AND complete AND new @@ -1396,7 +1396,7 @@ inode_t *MDCache::journal_dirty_inode(Mutation *mut, EMetaBlob *metablob, CInode CDentry *dn = in->get_projected_parent_dn(); if (!dn->get_projected_linkage()->is_null()) // no need to cow a null dentry journal_cow_dentry(mut, metablob, dn, follows); - return metablob->add_primary_dentry(dn, true, in, in->get_projected_inode()); + return metablob->add_primary_dentry(dn, true, in); } } @@ -4247,7 +4247,7 @@ void MDCache::queue_file_recover(CInode *in) } in->parent->first = in->first; - le->metablob.add_primary_dentry(in->parent, true, in, in->get_projected_inode()); + le->metablob.add_primary_dentry(in->parent, true, in); mds->mdlog->submit_entry(le, new C_MDC_QueuedCow(this, in, mut)); mds->mdlog->flush(); } @@ -4458,7 +4458,7 @@ void MDCache::truncate_inode_finish(CInode *in, LogSegment *ls) EUpdate *le = new EUpdate(mds->mdlog, "truncate finish"); le->metablob.add_dir_context(in->get_parent_dir()); - le->metablob.add_primary_dentry(in->get_projected_parent_dn(), true, in, pi); + le->metablob.add_primary_dentry(in->get_projected_parent_dn(), true, in); le->metablob.add_truncate_finish(in->ino(), ls->offset); journal_dirty_inode(mut, &le->metablob, in); @@ -6550,7 +6550,7 @@ void MDCache::snaprealm_create(MDRequest *mdr, CInode *in) predirty_journal_parents(mut, &le->metablob, in, 0, PREDIRTY_PRIMARY); journal_cow_inode(mut, &le->metablob, in); - le->metablob.add_primary_dentry(in->get_projected_parent_dn(), true, 0, pi, 0, &snapbl); + le->metablob.add_primary_dentry(in->get_projected_parent_dn(), true, in, 0, &snapbl); mds->mdlog->submit_entry(le, new C_MDC_snaprealm_create_finish(this, mdr, mut, in)); mds->mdlog->flush(); diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 182b48a60b6..df52f974318 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2064,7 +2064,7 @@ void Server::handle_client_setxattr(MDRequest *mdr) le->metablob.add_client_req(req->get_reqid()); mdcache->predirty_journal_parents(mdr, &le->metablob, cur, 0, PREDIRTY_PRIMARY, false); mdcache->journal_cow_inode(mdr, &le->metablob, cur); - le->metablob.add_primary_dentry(cur->get_projected_parent_dn(), true, cur, pi, 0, 0, px); + le->metablob.add_primary_dentry(cur->get_projected_parent_dn(), true, cur, 0, 0, px); journal_and_reply(mdr, cur, 0, le, new C_MDS_inode_update_finish(mds, mdr, cur)); } @@ -2113,7 +2113,7 @@ void Server::handle_client_removexattr(MDRequest *mdr) le->metablob.add_client_req(req->get_reqid()); mdcache->predirty_journal_parents(mdr, &le->metablob, cur, 0, PREDIRTY_PRIMARY, false); mdcache->journal_cow_inode(mdr, &le->metablob, cur); - le->metablob.add_primary_dentry(cur->get_projected_parent_dn(), true, cur, pi, 0, 0, px); + le->metablob.add_primary_dentry(cur->get_projected_parent_dn(), true, cur, 0, 0, px); journal_and_reply(mdr, cur, 0, le, new C_MDS_inode_update_finish(mds, mdr, cur)); } @@ -2416,7 +2416,7 @@ void Server::handle_client_mkdir(MDRequest *mdr) le->metablob.add_client_req(req->get_reqid()); journal_allocated_inos(mdr, &le->metablob); mdcache->predirty_journal_parents(mdr, &le->metablob, newi, dn->get_dir(), PREDIRTY_PRIMARY|PREDIRTY_DIR, 1); - le->metablob.add_primary_dentry(dn, true, newi, &newi->inode); + le->metablob.add_primary_dentry(dn, true, newi); le->metablob.add_dir(newdir, true, true, true); // dirty AND complete AND new // issue a cap on the directory @@ -3005,7 +3005,7 @@ void Server::do_link_rollback(bufferlist &rbl, int master, MDRequest *mdr) ESlaveUpdate::OP_ROLLBACK, ESlaveUpdate::LINK); le->commit.add_dir_context(parent); le->commit.add_dir(parent, true); - le->commit.add_primary_dentry(in->get_parent_dn(), true, 0, pi); + le->commit.add_primary_dentry(in->get_parent_dn(), true, 0); mdlog->submit_entry(le, new C_MDS_LoggedLinkRollback(this, mut, mdr)); mdlog->flush(); @@ -3251,7 +3251,7 @@ void Server::_unlink_local(MDRequest *mdr, CDentry *dn, CDentry *straydn) dnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->find_snaprealm(), snapbl); straydn->first = dnl->get_inode()->first; - le->metablob.add_primary_dentry(straydn, true, dnl->get_inode(), pi, 0, &snapbl); + le->metablob.add_primary_dentry(straydn, true, dnl->get_inode(), 0, &snapbl); } else { // remote link. update remote inode. mdcache->predirty_journal_parents(mdr, &le->metablob, dnl->get_inode(), dn->get_dir(), PREDIRTY_DIR, -1); @@ -4013,11 +4013,11 @@ void Server::_rename_prepare(MDRequest *mdr, } else destdnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->find_snaprealm(), snapbl); straydn->first = destdnl->get_inode()->first; - tji = metablob->add_primary_dentry(straydn, true, destdnl->get_inode(), tpi, 0, &snapbl); + tji = metablob->add_primary_dentry(straydn, true, destdnl->get_inode(), 0, &snapbl); } else if (destdnl->is_remote()) { metablob->add_dir_context(destdnl->get_inode()->get_parent_dir()); mdcache->journal_cow_dentry(mdr, metablob, destdnl->get_inode()->parent, CEPH_NOSNAP, 0, destdnl); - tji = metablob->add_primary_dentry(destdnl->get_inode()->parent, true, destdnl->get_inode(), tpi); + tji = metablob->add_primary_dentry(destdnl->get_inode()->parent, true, destdnl->get_inode()); } } @@ -4030,13 +4030,13 @@ void Server::_rename_prepare(MDRequest *mdr, destdn->first = destdn->get_dir()->inode->find_snaprealm()->get_newest_seq()+1; metablob->add_remote_dentry(destdn, true, srcdnl->get_remote_ino(), srcdnl->get_remote_d_type()); mdcache->journal_cow_dentry(mdr, metablob, srcdnl->get_inode()->get_parent_dn(), CEPH_NOSNAP, 0, srcdnl); - ji = metablob->add_primary_dentry(srcdnl->get_inode()->get_parent_dn(), true, srcdnl->get_inode(), pi); + ji = metablob->add_primary_dentry(srcdnl->get_inode()->get_parent_dn(), true, srcdnl->get_inode()); } else { if (!destdnl->is_null()) mdcache->journal_cow_dentry(mdr, metablob, destdn, CEPH_NOSNAP, 0, destdnl); else destdn->first = destdn->get_dir()->inode->find_snaprealm()->get_newest_seq()+1; - metablob->add_primary_dentry(destdn, true, destdnl->get_inode(), pi); + metablob->add_primary_dentry(destdn, true, destdnl->get_inode()); } } else if (srcdnl->is_primary()) { // project snap parent update? @@ -4048,7 +4048,7 @@ void Server::_rename_prepare(MDRequest *mdr, mdcache->journal_cow_dentry(mdr, metablob, destdn, CEPH_NOSNAP, 0, destdnl); else destdn->first = destdn->get_dir()->inode->find_snaprealm()->get_newest_seq()+1; - ji = metablob->add_primary_dentry(destdn, true, srcdnl->get_inode(), pi, 0, &snapbl); + ji = metablob->add_primary_dentry(destdn, true, srcdnl->get_inode(), 0, &snapbl); } // src @@ -4696,12 +4696,12 @@ void Server::do_rename_rollback(bufferlist &rbl, int master, MDRequest *mdr) ESlaveUpdate *le = new ESlaveUpdate(mdlog, "slave_rename_rollback", rollback.reqid, master, ESlaveUpdate::OP_ROLLBACK, ESlaveUpdate::RENAME); le->commit.add_dir_context(srcdir); - le->commit.add_primary_dentry(srcdn, true, 0, pi); + le->commit.add_primary_dentry(srcdn, true, 0); le->commit.add_dir_context(destdir); if (destdnl->is_null()) le->commit.add_null_dentry(destdn, true); else if (destdnl->is_primary()) - le->commit.add_primary_dentry(destdn, true, 0, ti); + le->commit.add_primary_dentry(destdn, true, 0); else if (destdnl->is_remote()) le->commit.add_remote_dentry(destdn, true); if (straydn) { @@ -5271,7 +5271,7 @@ void Server::handle_client_mksnap(MDRequest *mdr) if (newrealm) diri->close_snaprealm(true); - le->metablob.add_primary_dentry(diri->get_projected_parent_dn(), true, 0, pi, 0, &snapbl); + le->metablob.add_primary_dentry(diri->get_projected_parent_dn(), true, 0, 0, &snapbl); mdlog->submit_entry(le, new C_MDS_mksnap_finish(mds, mdr, diri, info)); mdlog->flush(); @@ -5408,7 +5408,7 @@ void Server::handle_client_rmsnap(MDRequest *mdr) diri->snaprealm->snaps[snapid] = old_info; diri->snaprealm->seq = old_seq; diri->snaprealm->last_destroyed = old_ld; - le->metablob.add_primary_dentry(diri->get_projected_parent_dn(), true, 0, pi, 0, &snapbl); + le->metablob.add_primary_dentry(diri->get_projected_parent_dn(), true, 0, 0, &snapbl); mdlog->submit_entry(le, new C_MDS_rmsnap_finish(mds, mdr, diri, snapid)); mdlog->flush(); diff --git a/src/mds/events/EMetaBlob.h b/src/mds/events/EMetaBlob.h index 6c94c724d9d..16ca7fe449c 100644 --- a/src/mds/events/EMetaBlob.h +++ b/src/mds/events/EMetaBlob.h @@ -491,13 +491,13 @@ private: // return remote pointer to to-be-journaled inode inode_t *add_primary_dentry(CDentry *dn, bool dirty, - CInode *in=0, inode_t *pi=0, fragtree_t *pdft=0, bufferlist *psnapbl=0, + CInode *in=0, fragtree_t *pdft=0, bufferlist *psnapbl=0, map<string,bufferptr> *px=0) { return add_primary_dentry(add_dir(dn->get_dir(), false), - dn, dirty, in, pi, pdft, psnapbl, px); + dn, dirty, in, pdft, psnapbl, px); } inode_t *add_primary_dentry(dirlump& lump, CDentry *dn, bool dirty, - CInode *in=0, inode_t *pi=0, fragtree_t *pdft=0, bufferlist *psnapbl=0, + CInode *in=0, fragtree_t *pdft=0, bufferlist *psnapbl=0, map<string,bufferptr> *px=0) { if (!in) in = dn->get_projected_linkage()->get_inode(); @@ -506,7 +506,7 @@ private: in->last_journaled = my_offset; //cout << "journaling " << in->inode.ino << " at " << my_offset << std::endl; - if (!pi) pi = in->get_projected_inode(); + inode_t *pi = in->get_projected_inode(); if (!pdft) pdft = &in->dirfragtree; if (!px) px = &in->xattrs; diff --git a/src/mds/events/EOpen.h b/src/mds/events/EOpen.h index 40c872cea84..d72572fda8e 100644 --- a/src/mds/events/EOpen.h +++ b/src/mds/events/EOpen.h @@ -33,9 +33,8 @@ public: void add_clean_inode(CInode *in) { if (!in->is_root()) { - inode_t *pi = in->get_projected_inode(); metablob.add_dir_context(in->get_projected_parent_dn()->get_dir()); - metablob.add_primary_dentry(in->get_projected_parent_dn(), false, 0, pi); + metablob.add_primary_dentry(in->get_projected_parent_dn(), false, 0); inos.push_back(in->ino()); } } |