Messages in this thread | | | From | Peng Tao <> | Date | Sat, 4 Dec 2010 18:40:14 +0800 | Subject | Question about bdi writeback and __filemap_fdatawrite_range() |
| |
Hi,
There are three lists in struct bdi_writeback, b_dirty, b_io and b_more_io. Once an inode is dirtied, it will be put in b_dirty list. And once it gets written back, it gets out of the b_io list. And my question is, if __filemap_fdatawrite_range() kicks off the writeback, and writes all dirty pages in the inode, how is the inode supposed to leave the bdi writeback list? I mean, writeback_inodes_wb() will add the inode to the b_dirty list if no page is written back w/ writeback_single_inode (which is sure, because no dirty page is left).
Is there some piece of code that I am missing?
-- Thanks, -Bergwolf
| |