[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Question on set_page_dirty()
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').
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?
Thanks in advance for any help
with best regards
Martin Maletinsky
P.S. Please put me on CC: in your reply, since I am not in the mailing list.
*
153 * Add a page to the dirty page list.
154 */
155 void set_page_dirty(struct page *page)
156 {
157 if (!test_and_set_bit(PG_dirty, &page->flags)) {
158 struct address_space *mapping = page->mapping;
159
160 if (mapping) {
161 spin_lock(&pagecache_lock);
162 list_del(&page->list);
163 list_add(&page->list, &mapping->dirty_pages);
164 spin_unlock(&pagecache_lock);
165
166 if (mapping->host)
167 mark_inode_dirty_pages(mapping->host);
168 }
169 }
170 }
--
Supercomputing System AG email: maletinsky@scs.ch
Martin Maletinsky phone: +41 (0)1 445 16 05
Technoparkstrasse 1 fax: +41 (0)1 445 16 10
CH-8005 Zurich
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/