On Fri, Jul 19 2013, Srinivas Eeda wrote: > In __mark_inode_dirty, a process checks !wb_has_dirty_io outside of list_lock > spinlock. This could cause a race, where process sees that list has dirty io > and decides not wake up bdi thread and waits for spinlock to add to dirty list. > Right at this time bdi_writeback_workfn finished write-back on last inode. > It sees the list is empty and ends. Process could now get the spinlock and > add inode to dirty list and doesn't wakeup bdi thread. Future calls to > __mark_inode_dirty also do not wake up the thread because list is not empty > any more. > > Fix is to get wb.list_lock spinlock before checking the dirty list With Jan's ack, lets add this for the current cycle. Should go into stable as well, imho. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html