[1/5] follow_page: do not put_page if FOLL_GET not specified.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



follow: no put_page() if FOLL_GET not specified.

Seems that one of the side effects of the dirty pages patch in
2.6.17-rc4-mm3 is that follow_pages does a page_put if FOLL_GET is
not set in the flags passed to it. This breaks sys_move_pages()
page status determination.

Only put_page if we did a get_page() before.

Signed-off-by: Christoph Lameter <clameter@xxxxxxx>
Index: linux-2.6.17-rc4-mm3/mm/memory.c
===================================================================
--- linux-2.6.17-rc4-mm3.orig/mm/memory.c	2006-05-22 18:03:32.280767264 -0700
+++ linux-2.6.17-rc4-mm3/mm/memory.c	2006-05-23 10:01:48.917295988 -0700
@@ -964,7 +964,7 @@ struct page *follow_page(struct vm_area_
 			set_page_dirty(page);
 		mark_page_accessed(page);
 	}
-	if (!(flags & FOLL_GET))
+	if (!(flags & FOLL_GET) && (flags & FOLL_TOUCH))
 		put_page(page);
 	goto out;
 
-
: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux