Whamcloud - gitweb
b=22610 a truncate_complete_page fix
authorAndrew Perepechko <Andrew.Perepechko@Sun.COM>
Wed, 19 May 2010 15:39:51 +0000 (19:39 +0400)
committerJohann Lombardi <johann@sun.com>
Wed, 19 May 2010 20:48:47 +0000 (22:48 +0200)
truncate_complete_page implementation for the patchless
client could arbitrarily unset PG_Uptodate flag for a
page being kicked from the page cache, an uptodate check
right after a readpage call in filemap_fault could fail
because of that as though the page read had been unsuccessful.

i=Oleg Drokin
i=Johann Lombardi

lustre/ChangeLog
lustre/include/linux/lustre_patchless_compat.h

index 692c0d5..6a940d6 100644 (file)
@@ -12,6 +12,16 @@ tbd        Oracle, Inc.
        * The async journal commit feature (bug 19128) and the cancel
          lock before replay feature (bug 16774) are disabled by default.
 
+Severity   : normal
+Bugzilla   : 22610
+Description: a race condition could lead to SIGBUS being sent to an
+            application using mmap-ped files from Lustre
+Details    : truncate_complete_page implementation for the patchless
+            client could arbitrarily unset PG_Uptodate flag for a
+            page being kicked from the page cache, an uptodate check
+            right after a readpage call in filemap_fault could fail
+            because of that as though the page read had been unsuccessful.
+
 Severity   : enhancement
 Bugzilla   : 22455
 Description: add list_param to b1_8 and add "-R" option to list params
index f5ba194..723a39a 100644 (file)
@@ -86,7 +86,6 @@ truncate_complete_page(struct address_space *mapping, struct page *page)
 #else
         clear_page_dirty(page);
 #endif
-        ClearPageUptodate(page);
         ClearPageMappedToDisk(page);
         ll_remove_from_page_cache(page);
         page_cache_release(page);       /* pagecache ref */