implicit AOP_FLAG_NOFS for grab_cache_page_write_begin

From: Michal Hocko
Date: Wed Apr 15 2020 - 03:02:41 EST


Hi,
I have just received a bug report about memcg OOM [1]. The underlying
issue is memcg specific but the stack trace made me look at the write(2)
patch and I have noticed that iomap_write_begin enforces AOP_FLAG_NOFS
which means that all the page cache that has to be allocated is
GFP_NOFS. What is the reason for this? Do all filesystems really need
the reclaim protection? I was hoping that those filesystems which really
need NOFS context would be using the scope API
(memalloc_nofs_{save,restore}.

Could you clarify please?

[1] http://lkml.kernel.org/r/20200414212558.58eaab4de2ecf864eaa87e5d@xxxxxxxxxxxxxxxxxxxx
--
Michal Hocko
SUSE Labs