Re: [PATCH 8/8] Revert "ext4: fix wrong gfp type under transaction"
From: Jan Kara
Date: Tue Jan 17 2017 - 12:29:54 EST
On Tue 17-01-17 17:16:19, Michal Hocko wrote:
> > > But before going to play with that I am really wondering whether we need
> > > all this with no journal at all. AFAIU what Jack told me it is the
> > > journal lock(s) which is the biggest problem from the reclaim recursion
> > > point of view. What would cause a deadlock in no journal mode?
> >
> > We still have the original problem for why we need GFP_NOFS even in
> > ext2. If we are in a writeback path, and we need to allocate memory,
> > we don't want to recurse back into the file system's writeback path.
>
> But we do not enter the writeback path from the direct reclaim. Or do
> you mean something other than pageout()'s mapping->a_ops->writepage?
> There is only try_to_release_page where we get back to the filesystems
> but I do not see any NOFS protection in ext4_releasepage.
Maybe to expand a bit: These days, direct reclaim can call ->releasepage()
callback, ->evict_inode() callback (and only for inodes with i_nlink > 0),
shrinkers. That's it. So the recursion possibilities are rather more limited
than they used to be several years ago and we likely do not need as much
GFP_NOFS protection as we used to.
Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR