From 87f88fb7129aeac6de1981e72902302fb15fd600 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Tue, 11 May 2021 17:16:52 +0800 Subject: [PATCH] cifs: revalidate mapping when we open files for SMB1 POSIX stable inclusion from linux-4.19.186 commit b7dc01be7a2831ca0514439bd20be01df5cccef4 -------------------------------- [ Upstream commit cee8f4f6fcabfdf229542926128e9874d19016d5 ] RHBZ: 1933527 Under SMB1 + POSIX, if an inode is reused on a server after we have read and cached a part of a file, when we then open the new file with the re-cycled inode there is a chance that we may serve the old data out of cache to the application. This only happens for SMB1 (deprecated) and when posix are used. The simplest solution to avoid this race is to force a revalidate on smb1-posix open. Signed-off-by: Ronnie Sahlberg Reviewed-by: Paulo Alcantara (SUSE) Signed-off-by: Steve French Signed-off-by: Sasha Levin Signed-off-by: Yang Yingliang --- fs/cifs/file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/cifs/file.c b/fs/cifs/file.c index 35729722ac59..facd4315ef56 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -163,6 +163,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode, goto posix_open_ret; } } else { + cifs_revalidate_mapping(*pinode); cifs_fattr_to_inode(*pinode, &fattr); } -- GitLab