From: Xiubo Li Date: Tue, 7 Feb 2023 05:04:52 +0000 (+0800) Subject: ceph: flush cap releases when the session is flushed X-Git-Tag: v6.1.15~235 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a89868254cd2079b800361e68f39ac4e57293080;p=platform%2Fkernel%2Flinux-starfive.git 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 Reviewed-by: Venky Shankar Reviewed-by: Jeff Layton Signed-off-by: Ilya Dryomov Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 26a0a8b..756560d 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -3662,6 +3662,12 @@ static void handle_session(struct ceph_mds_session *session, break; 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); break;