Do we have a strategy for eliminating GFP_NOFS? As I understand it, our intent is to mark the areas in individual filesystems that can't be reentered with memalloc_nofs_save()/restore() pairs. Once they're all done, then we can replace all the GFP_NOFS users with GFP_KERNEL. How will we know when we're done and can kill GFP_NOFS? I was thinking that we could put a warning in slab/page_alloc that fires when __GFP_IO is set, __GFP_FS is clear and PF_MEMALLOC_NOFS is clear. That would catch every place that uses GFP_NOFS without using memalloc_nofs_save(). Unfortunately (and this is sort of the point), there's a lot of places which use GFP_NOFS as a precaution; that is, they can be called from places which both are and aren't in a nofs path. So we'd have to pass in GFP flags. Which would be a lot of stupid churn. I don't have a good solution here. Maybe this is a good discussion topic for LSFMM, or maybe there's already a good solution I'm overlooking.