From: Kazuo Ito Date: Thu, 14 Feb 2019 09:36:58 +0000 (+0900) Subject: pNFS: Fix potential corruption of page being written X-Git-Tag: v5.1-rc1~48^2~48 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=97ae91bbf3a70fc8cee3c9030564cfc892cc8cee;p=linux.git pNFS: Fix potential corruption of page being written nfs_want_read_modify_write() didn't check for !PagePrivate when pNFS block or SCSI layout was in use, therefore we could lose data forever if the page being written was filled by a read before completion. Signed-off-by: Kazuo Ito Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/file.c b/fs/nfs/file.c index e4a33e66f417..7086d5677ed3 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -299,7 +299,7 @@ static int nfs_want_read_modify_write(struct file *file, struct page *page, unsigned int end = offset + len; if (pnfs_ld_read_whole_page(file->f_mapping->host)) { - if (!PageUptodate(page)) + if (!PageUptodate(page) && !PagePrivate(page)) return 1; return 0; }