On Fri, Apr 29, 2011 at 11:24:45PM +0200, Jan Kara wrote: > ext4_symlink() cannot call __page_symlink() with transaction open. > __page_symlink() calls ext4_write_begin() which can wait for > transaction commit if we are running out of space thus causing a > deadlock. Also error recovery in ext4_truncate_failed_write() does > not count with the transaction being already started (although I'm > not aware of any particular deadlock here). > > Fix the problem by stopping a transaction before calling __page_symlink() > (we have to be careful and put inode to orphan list so that it gets deleted > in case of crash) and starting another one after __page_symlink() returns > for addition of symlink into a directory. > > Signed-off-by: Jan Kara <jack@xxxxxxx> Thanks, added to the ext4 tree. - Ted -- 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