> From: Jinshan Xiong <jinshan.xi...@intel.com> > > Otherwise, if the race between page fault and truncate occurs, it > will cause the page fault routine to return an EIO error. > > In filemap_fault() { > page_not_uptodate: > ... > ClearPageError(page); > error = mapping->a_ops->readpage(file, page); > if (!error) { > wait_on_page_locked(page); > if (!PageUptodate(page)) > error = -EIO; > } > ... > } > > However, I tend to think this is a defect in kernel implementation, > because it assumes PageUptodate shouldn't be cleared but file read > routine doesn't make the same assumption.
Reviewed-by: James Simmons <jsimm...@infradead.org> > Signed-off-by: Jinshan Xiong <jinshan.xi...@intel.com> > Reviewed-on: http://review.whamcloud.com/22827 > Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8633 > Reviewed-by: Li Dongyang <dongyang...@anu.edu.au> > Reviewed-by: Bobi Jam <bobi...@hotmail.com> > Signed-off-by: Oleg Drokin <gr...@linuxhacker.ru> > --- > drivers/staging/lustre/lustre/llite/vvp_page.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/staging/lustre/lustre/llite/vvp_page.c > b/drivers/staging/lustre/lustre/llite/vvp_page.c > index 25490a5..23d6630 100644 > --- a/drivers/staging/lustre/lustre/llite/vvp_page.c > +++ b/drivers/staging/lustre/lustre/llite/vvp_page.c > @@ -166,7 +166,6 @@ static void vvp_page_delete(const struct lu_env *env, > refc = atomic_dec_return(&page->cp_ref); > LASSERTF(refc >= 1, "page = %p, refc = %d\n", page, refc); > > - ClearPageUptodate(vmpage); > ClearPagePrivate(vmpage); > vmpage->private = 0; > /* > -- > 2.7.4 > > _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel