Commit 83267ecc authored by Xiubo Li's avatar Xiubo Li Committed by zhaoxiaoqiang11
Browse files

ceph: flush cap releases when the session is flushed

stable inclusion
from stable-v5.10.168
commit 6ff8b48253926147e441b9d0c833ca6494707d0b
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7URR4

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6ff8b48253926147e441b9d0c833ca6494707d0b

----------------------------------------------------

commit e7d84c6a 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: default avatarXiubo Li <xiubli@redhat.com>
Reviewed-by: default avatarVenky Shankar <vshankar@redhat.com>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarzhaoxiaoqiang11 <zhaoxiaoqiang11@jd.com>
parent 8cf35797
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3496,6 +3496,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;