On 2/18/22 12:42 PM, Matthew Wilcox wrote: > On Fri, Feb 18, 2022 at 11:57:30AM -0800, Stefan Roesch wrote: >> This splits off the __alloc_page_buffers() function from the >> alloc_page_buffers_function(). In addition it adds a gfp_t parameter, so >> the caller can specify the allocation flags. > > This one only has six callers, so let's get the API right. I suggest > making this: > > struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size, > gfp_t gfp) > { > gfp |= __GFP_ACCOUNT; > > and then all the existing callers specify either GFP_NOFS or > GFP_NOFS | __GFP_NOFAIL. > I can make that change, but i don't see how i can decide in block_write_begin() to use different gfp flags when an async buffered write request is processed?