Messages in this thread | | | Date | Mon, 7 May 2001 20:26:42 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: page_launder() bug |
| |
On Mon, 7 May 2001, David S. Miller wrote: > > Marcelo Tosatti writes: > > I was wrong. The patch is indeed buggy because of the __GFP_IO thing. > > What about the __GFP_IO thing? > > Specifically, what protects the __GFP_IO thing from happening without > my patch?
This:
/* First time through? Move it to the back of the list */ if (!launder_loop) { list_del(page_lru); list_add(page_lru, &inactive_dirty_list); UnlockPage(page); continue; }
if (can_get_io_locks && !launder_loop && free_shortage()) { launder_loop = 1; ...
Notice? If "can_get_io_locks" is not true, we will never call "writepage()" on the page, because if "can_get_io_locks" is false, "launder_loop" will always be false too..
And "can_get_io_locks" depends on __GFP_IO.
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |