From e7920c93f24f77fb67d434f26d4b5df75aeb8380 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 24 Jun 2015 15:24:41 +0800 Subject: [PATCH] client: convert CapSnap::in to smart pointer Signed-off-by: Yan, Zheng --- src/client/Client.cc | 8 +++----- src/client/Inode.h | 4 +++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 5d9363a7adc..7b1b3e0a230 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -3120,7 +3120,6 @@ void Client::queue_cap_snap(Inode *in, SnapContext& old_snapc) } else if (in->caps_dirty() || (used & CEPH_CAP_FILE_WR) || (dirty & CEPH_CAP_ANY_WR)) { - in->get(); CapSnap *capsnap = new CapSnap(in); in->cap_snaps[old_snapc.seq] = capsnap; capsnap->context = old_snapc; @@ -3824,10 +3823,10 @@ void Client::kick_flushing_caps(MetaSession *session) for (xlist::iterator p = session->flushing_capsnaps.begin(); !p.end(); ++p) { CapSnap *capsnap = *p; - Inode *in = capsnap->in; + InodeRef& in = capsnap->in; ldout(cct, 20) << " reflushing capsnap " << capsnap << " on " << *in << " to mds." << mds << dendl; - flush_snaps(in, false, capsnap); + flush_snaps(in.get(), false, capsnap); } for (xlist::iterator p = session->flushing_caps.begin(); !p.end(); ++p) { Inode *in = *p; @@ -4378,10 +4377,9 @@ void Client::handle_cap_flushsnap_ack(MetaSession *session, Inode *in, MClientCa } else { ldout(cct, 5) << "handle_cap_flushedsnap mds." << mds << " flushed snap follows " << follows << " on " << *in << dendl; + in->cap_snaps.erase(follows); capsnap->flushing_item.remove_myself(); delete capsnap; - in->cap_snaps.erase(follows); - put_inode(in); } } else { ldout(cct, 5) << "handle_cap_flushedsnap DUP(?) mds." << mds << " flushed snap follows " << follows diff --git a/src/client/Inode.h b/src/client/Inode.h index 1ca7d333324..a4d4f731a04 100644 --- a/src/client/Inode.h +++ b/src/client/Inode.h @@ -13,6 +13,8 @@ #include "osdc/ObjectCacher.h" #include "include/assert.h" +#include "InodeRef.h" + class Client; struct MetaSession; class Dentry; @@ -43,7 +45,7 @@ struct Cap { struct CapSnap { //snapid_t follows; // map key - Inode *in; + InodeRef in; SnapContext context; int issued, dirty; -- 2.47.3