Skip to content

Commit

Permalink
pNFS: Fix potential corruption of page being written
Browse files Browse the repository at this point in the history
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 <ito_kazuo_g3@lab.ntt.co.jp>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
  • Loading branch information
Kazuo Ito authored and Trond Myklebust committed Feb 20, 2019
1 parent bf211ca commit 97ae91b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/nfs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down

0 comments on commit 97ae91b

Please sign in to comment.