Commit 9bd644fe authored by Xiubo Li's avatar Xiubo Li Committed by Baokun Li
Browse files

ceph: remove the incorrect Fw reference check when dirtying pages

stable inclusion
from stable-v4.19.323
commit c26c5ec832dd9e9dcd0a0a892a485c99889b68f0
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IB2YU2
CVE: CVE-2024-50179

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



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

[ Upstream commit c08dfb1b49492c09cf13838c71897493ea3b424e ]

When doing the direct-io reads it will also try to mark pages dirty,
but for the read path it won't hold the Fw caps and there is case
will it get the Fw reference.

Fixes: 5dda377c ("ceph: set i_head_snapc when getting CEPH_CAP_FILE_WR reference")
Signed-off-by: default avatarXiubo Li <xiubli@redhat.com>
Reviewed-by: default avatarPatrick Donnelly <pdonnell@redhat.com>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarBaokun Li <libaokun1@huawei.com>
parent eb352e9e
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@ static int ceph_set_page_dirty(struct page *page)

	/* dirty the head */
	spin_lock(&ci->i_ceph_lock);
	BUG_ON(ci->i_wr_ref == 0); // caller should hold Fw reference
	if (__ceph_have_pending_cap_snap(ci)) {
		struct ceph_cap_snap *capsnap =
				list_last_entry(&ci->i_cap_snaps,