From bce7044cece2f0eab84f8601b9b35bab605c0097 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 12 Apr 2009 14:24:21 -0700 Subject: [PATCH] mds: kill mdr->ref_snapdiri The client handles the nosnap->snap namespace transition. --- src/mds/MDCache.cc | 2 -- src/mds/MDCache.h | 7 +++---- src/mds/Server.cc | 17 +++-------------- src/mds/Server.h | 2 +- 4 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index abee51e8c4bd9..55071b3e47395 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -5561,7 +5561,6 @@ int MDCache::path_traverse(MDRequest *mdr, Message *req, // who if (!mdr) return -EINVAL; snapid = CEPH_SNAPDIR; - mdr->ref_snapdiri = cur; mdr->ref_snapid = snapid; depth++; continue; @@ -5576,7 +5575,6 @@ int MDCache::path_traverse(MDRequest *mdr, Message *req, // who if (!snapid) return -ENOENT; mdr->ref_snapid = snapid; - mdr->ref_snapdiri = cur; depth++; continue; } diff --git a/src/mds/MDCache.h b/src/mds/MDCache.h index 07a4668500311..051684700eb64 100644 --- a/src/mds/MDCache.h +++ b/src/mds/MDCache.h @@ -254,7 +254,6 @@ struct MDRequest : public Mutation { vector trace; // original path traversal. CInode *ref; // reference inode. if there is only one, and its path is pinned. - CInode *ref_snapdiri; snapid_t ref_snapid; CInode *tracei; @@ -321,21 +320,21 @@ struct MDRequest : public Mutation { // --------------------------------------------------- MDRequest() : - session(0), client_request(0), ref(0), ref_snapdiri(0), ref_snapid(CEPH_NOSNAP), tracei(0), tracedn(0), + session(0), client_request(0), ref(0), ref_snapid(CEPH_NOSNAP), tracei(0), tracedn(0), alloc_ino(0), used_prealloc_ino(0), cap(NULL), snap_caps(0), did_early_reply(false), slave_request(0), internal_op(-1), _more(0) {} MDRequest(metareqid_t ri, MClientRequest *req) : Mutation(ri), - session(0), client_request(req), ref(0), ref_snapdiri(0), ref_snapid(CEPH_NOSNAP), tracei(0), tracedn(0), + session(0), client_request(req), ref(0), ref_snapid(CEPH_NOSNAP), tracei(0), tracedn(0), alloc_ino(0), used_prealloc_ino(0), cap(NULL), snap_caps(0), did_early_reply(false), slave_request(0), internal_op(-1), _more(0) {} MDRequest(metareqid_t ri, int by) : Mutation(ri, by), - session(0), client_request(0), ref(0), ref_snapdiri(0), ref_snapid(CEPH_NOSNAP), tracei(0), tracedn(0), + session(0), client_request(0), ref(0), ref_snapid(CEPH_NOSNAP), tracei(0), tracedn(0), alloc_ino(0), used_prealloc_ino(0), cap(NULL), snap_caps(0), did_early_reply(false), slave_request(0), internal_op(-1), diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 9b54c2b211cca..711b87b700484 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -583,7 +583,7 @@ void Server::early_reply(MDRequest *mdr, CInode *tracei, CDentry *tracedn) << ") " << *req << dendl; if (tracei || tracedn) - set_trace_dist(mdr->session, reply, tracei, tracedn, mdr->ref_snapid, mdr->ref_snapdiri, + set_trace_dist(mdr->session, reply, tracei, tracedn, mdr->ref_snapid, mdr->client_request->is_replay(), mdr->client_request->get_dentry_wanted()); @@ -633,7 +633,6 @@ void Server::reply_request(MDRequest *mdr, MClientReply *reply, CInode *tracei, // get tracei/tracedn from mdr? snapid_t snapid = mdr->ref_snapid; - CInode *snapdiri = mdr->ref_snapdiri; if (!tracei) tracei = mdr->tracei; if (!tracedn) @@ -661,7 +660,7 @@ void Server::reply_request(MDRequest *mdr, MClientReply *reply, CInode *tracei, // send reply, with trace, and possible leases if (!did_early_reply && // don't issue leases if we sent an earlier reply already (tracei || tracedn)) - set_trace_dist(session, reply, tracei, tracedn, snapid, snapdiri, is_replay, dentry_wanted); + set_trace_dist(session, reply, tracei, tracedn, snapid, is_replay, dentry_wanted); messenger->send_message(reply, client_inst); } @@ -707,7 +706,7 @@ void Server::encode_null_lease(bufferlist& bl) */ void Server::set_trace_dist(Session *session, MClientReply *reply, CInode *in, CDentry *dn, - snapid_t snapid, CInode *snapdiri, + snapid_t snapid, bool is_replay, int dentry_wanted) { // inode, dentry, dir, ..., inode @@ -751,15 +750,6 @@ void Server::set_trace_dist(Session *session, MClientReply *reply, else encode_null_lease(bl); dout(20) << "set_trace_dist added dn " << snapid << " " << *dn << dendl; - /*} else if (snapdiri && snapdiri->ino() == in->ino() && snapname.length()) { - // fake a snapname dentry - dout(20) << "set_trace_dist added fake snap dir+dn " << snapname << " under " << *snapdiri << dendl; - reply->head.is_dentry = 1; - snapdiri->encode_inodestat(bl, session, NULL, CEPH_SNAPDIR, is_replay); - encode_empty_dirstat(bl); - ::encode(snapname, bl); - encode_infinite_lease(bl); - */ } else reply->head.is_dentry = 0; @@ -5215,7 +5205,6 @@ void Server::_mksnap_finish(MDRequest *mdr, CInode *diri, SnapInfo &info) // yay mdr->ref = diri; mdr->ref_snapid = snapid; - mdr->ref_snapdiri = diri; MClientReply *reply = new MClientReply(mdr->client_request, 0); reply->snapbl = diri->snaprealm->get_snap_trace(); reply_request(mdr, reply, diri); diff --git a/src/mds/Server.h b/src/mds/Server.h index b278ce8fabe72..60755d5d901c2 100644 --- a/src/mds/Server.h +++ b/src/mds/Server.h @@ -89,7 +89,7 @@ public: void reply_request(MDRequest *mdr, int r = 0, CInode *tracei = 0, CDentry *tracedn = 0); void reply_request(MDRequest *mdr, MClientReply *reply, CInode *tracei = 0, CDentry *tracedn = 0); void set_trace_dist(Session *session, MClientReply *reply, CInode *in, CDentry *dn, - snapid_t snapid, CInode *snapdiri, + snapid_t snapid, bool is_replay, int num_dentries_wanted); void encode_empty_dirstat(bufferlist& bl); -- 2.39.5