ceph: flush cap releases when the session is flushed
commit e7d84c6a1296d059389f7342d9b4b7defb518d3a upstream. MDS expects the completed cap release prior to responding to the session flush for cache drop. Cc: stable@vger.kernel.org Link: http://tracker.ceph.com/issues/38009 Signed-off-by: Xiubo Li <xiubli@redhat.com> Reviewed-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9b5d37d328
commit
bb3187311e
@ -3151,6 +3151,12 @@ static void handle_session(struct ceph_mds_session *session,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CEPH_SESSION_FLUSHMSG:
|
case CEPH_SESSION_FLUSHMSG:
|
||||||
|
/* flush cap releases */
|
||||||
|
spin_lock(&session->s_cap_lock);
|
||||||
|
if (session->s_num_cap_releases)
|
||||||
|
ceph_flush_cap_releases(mdsc, session);
|
||||||
|
spin_unlock(&session->s_cap_lock);
|
||||||
|
|
||||||
send_flushmsg_ack(mdsc, session, seq);
|
send_flushmsg_ack(mdsc, session, seq);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user