http://bugzilla.kernel.org/show_bug.cgi?id=15018 Jan Kara <jack@xxxxxxx> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jack@xxxxxxx, tytso@xxxxxxx --- Comment #2 from Jan Kara <jack@xxxxxxx> 2010-01-18 23:06:07 --- Ah, inlining and such stuff made reading this stack trace quite difficult. Anyway, the problem is that we just should not call write_inode_now() in ext4_da_reserve_space() when we have transaction already started. And as Andreas correctly points out, the patch even introduces a deadlock because it can call write_inode_now with wait==1. Moreover we hold page lock when holding write_inode_now which introduces a plenty of nasty locking issues I believe. The bug has been introduced by commit 0637c6f4135f592f094207c7c21e7c0fc5557834. Ted, I think that if we are failing to do the write because of ENOSPC, the only reasonable non-deadlocky thing to do is to restart the write completely - i.e., bail out up to ext4_da_write_begin, stop the transaction, drop the page, *do some magic*, and start again... -- Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug. -- 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