Hello, On Thu 08-03-12 23:31:13, Wu Fengguang wrote: > On Wed, Mar 07, 2012 at 05:48:21PM +0200, Artem Bityutskiy wrote: > > On Sat, 2012-03-03 at 21:55 +0800, Fengguang Wu wrote: > > > 13 1125 /c/linux/fs/ubifs/file.c <<do_truncation>> <===== deadlockable > > > > Sorry, but could you please explain once again how the deadlock may > > happen? > > Sorry I confused ubifs do_truncation() with the truncate_inode_pages() > that may be called from iput(). > > The once suspected deadlock scheme is when the flusher thread calls > the final iput: > > flusher thread > iput_final > <some ubifs function> > ubifs_budget_space > shrink_liability > writeback_inodes_sb > writeback_inodes_sb_nr > bdi_queue_work > wait_for_completion => end up waiting for the flusher itself > > However I cannot find any ubifs functions to form the above loop, so > ubifs should be safe for now. Yeah, me neither but I also failed to find a place where ubifs_evict_inode() truncates inode space when deleting the inode... Artem? Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>