On Thu, Jun 02, 2011 at 11:54:24AM +0200, Jan Kara wrote: > What happens is that direct reclaim sometimes does > wait_on_page_writeback() (e.g. shrink_page_list()) or it explicitely waits > for NR_WRITEBACK statistics to go below some threshold > (throttle_vm_writeout()). And that is deadlockable if we hold i_mutex while > doing this because we may need i_mutex to actually move the page from > PageWriteback state... We don't actully call set_page_writeback() until right before we submit the page for writeback. And we convert the unwritten extents in a workqueue, which gets submitted after we call end_page_writeback(). So I'm still not seeing a problem; sorry if I'm being dense! - Ted > As I'm saying this, I've realized ext4 has this problem also with > stable-pages patches because there we can wait for PageWriteback in > grab_cache_page_write_begin() when we also hold i_mutex. So I think we'll > have to come up with a way to convert unwritten extents without having to > hold i_mutex. That's going to be interesting. > > Honza > -- > Jan Kara <jack@xxxxxxx> > SUSE Labs, CR > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html