Commit 97ae91bb authored by Kazuo Ito's avatar Kazuo Ito Committed by Trond Myklebust
Browse files

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: default avatarKazuo Ito <ito_kazuo_g3@lab.ntt.co.jp>
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent bf211ca1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
	}