Messages in this thread |  | | | Date | Fri, 9 Mar 2012 10:51:35 +0100 | | From | Jan Kara <> | | Subject | Re: [PATCH 5/9] writeback: introduce the pageout work |
| |
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@suse.cz> SUSE Labs, CR
|  |