Messages in this thread | | | From | OGAWA Hirofumi <> | Subject | Re: [PATCH] Fix queueing work if !bdi_cap_writeback_dirty() | Date | Fri, 14 Sep 2012 22:49:21 +0900 |
| |
Fengguang Wu <fengguang.wu@intel.com> writes:
>> > And BDI_CAP_NO_WRITEBACK is expected to be a static/constant flag that >> > always evaluate to true/false for a given bdi. There will be >> > correctness problems if you change the BDI_CAP_NO_WRITEBACK flag >> > dynamically. >> >> I'm going to use it as static or per-sb by initialized in >> fill_super(). And it uses always BDI_CAP_NO_WRITEBACK if sb is >> available. Because own FS task flush instead. > > Ah OK, sorry I didn't quite catch your use case. > > But then if you set BDI_CAP_NO_WRITEBACK in the beginning, how come > __bdi_start_writeback() will be called at all?
If we call mark_inode_dirty(inode), inode goes into bdi->wb.b_dirty. And sync(2) calls __bdi_start_writeback() for all of bdi if bdi->wb.b_* is not empty.
Thanks. -- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
| |