Hi Yan- On Tue, 4 Jun 2013, Yan, Zheng wrote:
> From: "Yan, Zheng" <[email protected]> > > Signed-off-by: Yan, Zheng <[email protected]> > --- > 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 [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
