Messages in this thread Patch in this message | | | Date | Mon, 12 Jan 2004 11:39:59 -0800 | From | Janet Morgan <> | Subject | Re: [PATCH linux-2.6.0-test10-mm1] filemap_fdatawait.patch |
| |
Andrew Morton wrote:
>Janet Morgan <janetmor@us.ibm.com> wrote: > >> >diff -puN mm/filemap.c~a mm/filemap.c >> >--- 25/mm/filemap.c~a 2003-12-31 03:10:29.000000000 -0800 >> >+++ 25-akpm/mm/filemap.c 2003-12-31 03:17:05.000000000 -0800 >> >@@ -206,7 +206,13 @@ restart: >> > page_cache_get(page); >> > spin_unlock(&mapping->page_lock); >> > >> >- wait_on_page_writeback(page); >> >+ lock_page(page); >> >+ if (PageDirty(page) && mapping->a_ops->writepage) { >> >+ write_one_page(page, 1); >> >+ } else { >> >+ wait_on_page_writeback(page); >> >+ unlock_page(page); >> >+ } >> > if (PageError(page)) >> > ret = -EIO; >> > >> > >> > >> > >> That fixed the problem! Stephen's testcase is running successfully on >> 2.6.1-mm1 plus your patch -- no more uninitialized data! >> > >Could you please test 2.6.1-mm2 with that patch? If that works, send the >patch back to me? (I lost it ;)) > > I see uninitialized data when I test the patch (attached) on 2.6.1-mm2. Any thoughts on a next step?
Thanks, -Janet diff -puN mm/filemap.c~a mm/filemap.c --- 25/mm/filemap.c~a 2003-12-31 03:10:29.000000000 -0800 +++ 25-akpm/mm/filemap.c 2003-12-31 03:17:05.000000000 -0800 @@ -209,7 +209,13 @@ restart: page_cache_get(page); spin_unlock(&mapping->page_lock);
- wait_on_page_writeback(page); + lock_page(page); + if (PageDirty(page) && mapping->a_ops->writepage) { + write_one_page(page, 1); + } else { + wait_on_page_writeback(page); + unlock_page(page); + } if (PageError(page)) ret = -EIO;
| |