Message ID | 20210325062635.43370-1-lsahlber@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cifs: revalidate mapping when we open files for SMB1 POSIX | expand |
Ronnie Sahlberg <lsahlber@redhat.com> writes: > 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 <lsahlber@redhat.com> > --- > fs/cifs/file.c | 1 + > 1 file changed, 1 insertion(+) Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
merged into cifs-2.6.git for-next On Thu, Mar 25, 2021 at 10:34 AM Paulo Alcantara <pc@cjr.nz> wrote: > > Ronnie Sahlberg <lsahlber@redhat.com> writes: > > > 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 <lsahlber@redhat.com> > > --- > > fs/cifs/file.c | 1 + > > 1 file changed, 1 insertion(+) > > Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index 26de4329d161..042e24aad410 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -165,6 +165,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); }
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 <lsahlber@redhat.com> --- fs/cifs/file.c | 1 + 1 file changed, 1 insertion(+)