On Tue, Dec 10, 2002 at 10:59:34AM +0100, Martin Maletinsky wrote: > Hello, > > Looking at the function set_page_dirty() (in linux 2.4.18-3 - see > below) I noticed, that it not only sets the pages PG_dirty bit (as the > SetPageDirty() macro does), but additionnally may link the page onto > a queue (more precisely the dirty queue of it's 'mapping'). That's the most important bit of it all. All dirty pages must at some point be cleaned. The list keeps track of which pages need to be cleaned, so kernel can do it quickly either when it needs to free the mapping (close the file, terminate process, exec) or when it's just time to flush some pages (in kflushd). > What is the meaning of this dirty queue, what is the effect of linking > a page onto that queue, and when should the set_page_dirty() function > be used rather than the > SetPageDirty() macro? If you use the SetPageDirty macro, then the page is marked dirty, but kernel can't find it when it should clean it. Thus it eventualy won't flush the data (it won't call writepage on it). ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bulb@ucw.cz> -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/