Fengguang Wu <fengguang...@intel.com> writes: > On Wed, Sep 12, 2012 at 03:28:42AM +0900, OGAWA Hirofumi wrote: >> >> If bdi has BDI_CAP_NO_WRITEBACK, bdi_forker_thread() doesn't start >> writeback thread. This means there is no consumer of work item made >> by bdi_queue_work(). >> >> This adds to checking of !bdi_cap_writeback_dirty(sb->s_bdi) before >> calling bdi_queue_work(), otherwise queued work never be consumed. > > Thanks for catching this! Does this bug have any side effects other > than memory leaking? > > It may be possible for some caller that actually expect it to do some > work to make progress, otherwise will eventually block. If so, we'll > need to fix the caller.
If used custom bdi with BDI_CAP_NO_WRITEBACK, wait_for_completion() (e.g. sync_inodes_sb()) will be blocked forever. I tested by custom bdi with BDI_CAP_NO_WRITEBACK - sync(2) blocked forever by this reason. Thanks. -- OGAWA Hirofumi <hirof...@mail.parknet.co.jp> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/