lkml.org 
[lkml]   [2004]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [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;

\
 
 \ /
  Last update: 2005-03-22 14:00    [from the cache]
©2003-2011 Jasper Spaans