Message ID | 51BE7837.7060405@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Excellent, pushed. I'll review the others tomorrow. Thanks! sage On Mon, 17 Jun 2013, Yan, Zheng wrote: > updated patch, use cap->session instead of local session pointer > > --- > >From 2675b6cc7afe25c9b7e644396df3b54bec003ab2 Mon Sep 17 00:00:00 2001 > From: "Yan, Zheng" <zheng.z.yan@intel.com> > Date: Fri, 31 May 2013 16:40:24 +0800 > Subject: [PATCH 1/3] ceph: move inode to proper flushing list when auth MDS > changes > > Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com> > --- > fs/ceph/caps.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c > index 790f88b..9a5ccc9 100644 > --- a/fs/ceph/caps.c > +++ b/fs/ceph/caps.c > @@ -1982,8 +1982,15 @@ static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc, > cap = ci->i_auth_cap; > dout("kick_flushing_inode_caps %p flushing %s flush_seq %lld\n", inode, > ceph_cap_string(ci->i_flushing_caps), ci->i_cap_flush_seq); > + > __ceph_flush_snaps(ci, &session, 1); > + > if (ci->i_flushing_caps) { > + spin_lock(&mdsc->cap_dirty_lock); > + list_move_tail(&ci->i_flushing_item, > + &cap->session->s_cap_flushing); > + spin_unlock(&mdsc->cap_dirty_lock); > + > delayed = __send_cap(mdsc, cap, CEPH_CAP_OP_FLUSH, > __ceph_caps_used(ci), > __ceph_caps_wanted(ci), > -- > 1.8.1.4 > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 790f88b..9a5ccc9 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -1982,8 +1982,15 @@ static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc, cap = ci->i_auth_cap; dout("kick_flushing_inode_caps %p flushing %s flush_seq %lld\n", inode, ceph_cap_string(ci->i_flushing_caps), ci->i_cap_flush_seq); + __ceph_flush_snaps(ci, &session, 1); + if (ci->i_flushing_caps) { + spin_lock(&mdsc->cap_dirty_lock); + list_move_tail(&ci->i_flushing_item, + &cap->session->s_cap_flushing); + spin_unlock(&mdsc->cap_dirty_lock); + delayed = __send_cap(mdsc, cap, CEPH_CAP_OP_FLUSH, __ceph_caps_used(ci), __ceph_caps_wanted(ci),