From b0a8f6be815a03db36ef14e5006425c60951e396 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Thu, 12 Aug 2010 11:59:36 -0700 Subject: [PATCH] mds: switch all SnapRealm users to make use of snaprealm. --- src/librados.cc | 18 +++++++------- src/mds/CInode.cc | 4 +-- src/mds/MDCache.cc | 12 ++++----- src/mds/Server.cc | 62 +++++++++++++++++++++++----------------------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/librados.cc b/src/librados.cc index 716de591f7747..5227afcf09042 100644 --- a/src/librados.cc +++ b/src/librados.cc @@ -819,23 +819,23 @@ int RadosClient::write(PoolCtx& pool, const object_t& oid, off_t off, bufferlist static SnapContext snapc; static int i; - snapc.snaps.clear(); + snapc.snaprealm.snaps.clear(); #define START_SNAP 1 - if (snapc.seq == 0) - snapc.seq = START_SNAP - 1; + if (snapc.snaprealm.seq == 0) + snapc.snaprealm.seq = START_SNAP - 1; - ++snapc.seq; - for (i=0; i::iterator iter = snapc.snaps.begin(); - iter != snapc.snaps.end(); ++iter, ++i) { + for (vector::iterator iter = snapc.snaprealm.snaps.begin(); + iter != snapc.snaprealm.snaps.end(); ++iter, ++i) { dout(0) << "snapc[" << i << "] = " << *iter << dendl; } - dout(0) << "seq=" << snapc.seq << dendl; + dout(0) << "seq=" << snapc.snaprealm.seq << dendl; dout(0) << "snapc=" << snapc << dendl; #endif utime_t ut = g_clock.now(); diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 206c7bca4b310..f2174e08717a0 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -1176,9 +1176,9 @@ void CInode::decode_lock_state(int type, bufferlist& bl) { snapid_t seq = 0; if (snaprealm) - seq = snaprealm->seq; + seq = snaprealm->snaprealm.seq; decode_snap(p); - if (snaprealm && snaprealm->seq != seq) + if (snaprealm && snaprealm->snaprealm.seq != seq) mdcache->do_realm_invalidate_and_update_notify(this, seq ? CEPH_SNAP_OP_UPDATE:CEPH_SNAP_OP_SPLIT); } break; diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 3aa0b82a683b1..32f989be2dcf7 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -265,7 +265,7 @@ CInode *MDCache::create_system_inode(inodeno_t ino, int mode) else in->inode_auth = pair(in->ino() - MDS_INO_MDSDIR_OFFSET, CDIR_AUTH_UNKNOWN); in->open_snaprealm(); // empty snaprealm - in->snaprealm->seq = 1; + in->snaprealm->snaprealm.seq = 1; } add_inode(in); @@ -6829,7 +6829,7 @@ void MDCache::snaprealm_create(MDRequest *mdr, CInode *in) ::decode(seq, p); SnapRealm t(this, in); - t.created = seq; + t.snaprealm.created = seq; bufferlist snapbl; ::encode(t, snapbl); @@ -6920,9 +6920,9 @@ void MDCache::_snaprealm_create_finish(MDRequest *mdr, Mutation *mut, CInode *in ::decode(seq, p); in->open_snaprealm(); - in->snaprealm->seq = seq; - in->snaprealm->created = seq; - in->snaprealm->current_parent_since = seq; + in->snaprealm->snaprealm.seq = seq; + in->snaprealm->snaprealm.created = seq; + in->snaprealm->snaprealm.current_parent_since = seq; do_realm_invalidate_and_update_notify(in, CEPH_SNAP_OP_SPLIT); @@ -6996,7 +6996,7 @@ void MDCache::eval_stray(CDentry *dn) return; in->snaprealm->prune_past_parents(); if (in->snaprealm->has_past_parents()) { - dout(20) << " has past parents " << in->snaprealm->past_parents << dendl; + dout(20) << " has past parents " << in->snaprealm->snaprealm.past_parents << dendl; return; // not until some snaps are deleted. } } diff --git a/src/mds/Server.cc b/src/mds/Server.cc index bd3a261a22f9a..c7ad7c42e2d61 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -4102,7 +4102,7 @@ void Server::_unlink_local_finish(MDRequest *mdr, bool isnew = false; if (!straydnl->get_inode()->snaprealm) { straydnl->get_inode()->open_snaprealm(); - straydnl->get_inode()->snaprealm->seq = oldparent->get_newest_seq(); + straydnl->get_inode()->snaprealm->snaprealm.seq = oldparent->get_newest_seq(); isnew = true; } straydnl->get_inode()->snaprealm->add_past_parent(oldparent); @@ -4160,7 +4160,7 @@ bool Server::_dir_is_nonempty(MDRequest *mdr, CInode *in) assert(in->is_auth()); - if (in->snaprealm && in->snaprealm->snaps.size()) + if (in->snaprealm && in->snaprealm->snaprealm.snaps.size()) return true; //in a snapshot! list frags; @@ -4896,7 +4896,7 @@ void Server::_rename_apply(MDRequest *mdr, CDentry *srcdn, CDentry *destdn, CDen bool isnew = false; if (!straydnl->get_inode()->snaprealm) { straydnl->get_inode()->open_snaprealm(); - straydnl->get_inode()->snaprealm->seq = oldparent->get_newest_seq(); + straydnl->get_inode()->snaprealm->snaprealm.seq = oldparent->get_newest_seq(); isnew = true; } straydnl->get_inode()->snaprealm->add_past_parent(oldparent); @@ -5748,18 +5748,18 @@ void Server::handle_client_mksnap(MDRequest *mdr) if (!diri->snaprealm) { newrealm = true; diri->open_snaprealm(true); - diri->snaprealm->created = snapid; - diri->snaprealm->current_parent_since = snapid; - } - snapid_t old_seq = diri->snaprealm->seq; - snapid_t old_lc = diri->snaprealm->last_created; - diri->snaprealm->snaps[snapid] = info; - diri->snaprealm->seq = snapid; - diri->snaprealm->last_created = snapid; + diri->snaprealm->snaprealm.created = snapid; + diri->snaprealm->snaprealm.current_parent_since = snapid; + } + snapid_t old_seq = diri->snaprealm->snaprealm.seq; + snapid_t old_lc = diri->snaprealm->snaprealm.last_created; + diri->snaprealm->snaprealm.snaps[snapid] = info; + diri->snaprealm->snaprealm.seq = snapid; + diri->snaprealm->snaprealm.last_created = snapid; diri->encode_snap_blob(snapbl); - diri->snaprealm->snaps.erase(snapid); - diri->snaprealm->seq = old_seq; - diri->snaprealm->last_created = old_lc; + diri->snaprealm->snaprealm.snaps.erase(snapid); + diri->snaprealm->snaprealm.seq = old_seq; + diri->snaprealm->snaprealm.last_created = old_lc; if (newrealm) diri->close_snaprealm(true); @@ -5783,13 +5783,13 @@ void Server::_mksnap_finish(MDRequest *mdr, CInode *diri, SnapInfo &info) int op = CEPH_SNAP_OP_CREATE; if (!diri->snaprealm) { diri->open_snaprealm(); - diri->snaprealm->created = snapid; - diri->snaprealm->current_parent_since = snapid; + diri->snaprealm->snaprealm.created = snapid; + diri->snaprealm->snaprealm.current_parent_since = snapid; op = CEPH_SNAP_OP_SPLIT; } - diri->snaprealm->snaps[snapid] = info; - diri->snaprealm->seq = snapid; - diri->snaprealm->last_created = snapid; + diri->snaprealm->snaprealm.snaps[snapid] = info; + diri->snaprealm->snaprealm.seq = snapid; + diri->snaprealm->snaprealm.last_created = snapid; dout(10) << "snaprealm now " << *diri->snaprealm << dendl; mdcache->do_realm_invalidate_and_update_notify(diri, op); @@ -5892,16 +5892,16 @@ void Server::handle_client_rmsnap(MDRequest *mdr) // project the snaprealm.. hack! bufferlist snapbl; - snapid_t old_seq = diri->snaprealm->seq; - snapid_t old_ld = diri->snaprealm->last_destroyed; - SnapInfo old_info = diri->snaprealm->snaps[snapid]; - diri->snaprealm->snaps.erase(snapid); - diri->snaprealm->seq = seq; - diri->snaprealm->last_destroyed = seq; + snapid_t old_seq = diri->snaprealm->snaprealm.seq; + snapid_t old_ld = diri->snaprealm->snaprealm.last_destroyed; + SnapInfo old_info = diri->snaprealm->snaprealm.snaps[snapid]; + diri->snaprealm->snaprealm.snaps.erase(snapid); + diri->snaprealm->snaprealm.seq = seq; + diri->snaprealm->snaprealm.last_destroyed = seq; diri->encode_snap_blob(snapbl); - diri->snaprealm->snaps[snapid] = old_info; - diri->snaprealm->seq = old_seq; - diri->snaprealm->last_destroyed = old_ld; + diri->snaprealm->snaprealm.snaps[snapid] = old_info; + diri->snaprealm->snaprealm.seq = old_seq; + diri->snaprealm->snaprealm.last_destroyed = old_ld; 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)); @@ -5922,9 +5922,9 @@ void Server::_rmsnap_finish(MDRequest *mdr, CInode *diri, snapid_t snapid) mds->snapclient->commit(stid, mdr->ls); // remove snap - diri->snaprealm->snaps.erase(snapid); - diri->snaprealm->last_destroyed = seq; - diri->snaprealm->seq = seq; + diri->snaprealm->snaprealm.snaps.erase(snapid); + diri->snaprealm->snaprealm.last_destroyed = seq; + diri->snaprealm->snaprealm.seq = seq; dout(10) << "snaprealm now " << *diri->snaprealm << dendl; mdcache->do_realm_invalidate_and_update_notify(diri, CEPH_SNAP_OP_DESTROY); -- 2.39.5