Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.25-git19 /mm/migrate.c

Filename:/mm/migrate.c
Lines Added:8
Lines Deleted:1
Also changed in: (Previous) 2.6.25-git18  2.6.25-git17  2.6.25-git16  2.6.25  2.6.25-rc9  2.6.25-rc8 
(Following) 2.6.25-git20  2.6.25.9-rc1  2.6.25.9-rc2  2.6.25.9  2.6.25.10  2.6.25.11 

Location
[  2.6.25-git19
  [  mm
     o  migrate.c

Patch

diff --git a/mm/migrate.c b/mm/migrate.c
index 4e0eccc..449d77d 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -383,7 +383,14 @@ static void migrate_page_copy(struct page *newpage, struct page *page)
 
    if (PageDirty(page)) {
       clear_page_dirty_for_io(page);
-      set_page_dirty(newpage);
+      /*
+       * Want to mark the page and the radix tree as dirty, and
+       * redo the accounting that clear_page_dirty_for_io undid,
+       * but we can't use set_page_dirty because that function
+       * is actually a signal that all of the page has become dirty.
+       * Wheras only part of our page may be dirty.
+       */
+      __set_page_dirty_nobuffers(newpage);
     }
 
 #ifdef CONFIG_SWAP


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.