Hi Yan- On Tue, 4 Jun 2013, Yan, Zheng wrote: > From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx> > > Signed-off-by: Yan, Zheng <zheng.z.yan@xxxxxxxxx> > --- > fs/ceph/caps.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c > index 790f88b..458a66e 100644 > --- a/fs/ceph/caps.c > +++ b/fs/ceph/caps.c > @@ -1982,8 +1982,14 @@ 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); This function does funny things to the local session pointer... did you consider this when using it below? It can change to the auth cap mds if it is different than the value passed in... > + > if (ci->i_flushing_caps) { > + spin_lock(&mdsc->cap_dirty_lock); > + list_move_tail(&ci->i_flushing_item, &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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html