Re: [PATCH -next RFC 01/14] block: add some bdev apis

Christoph Hellwig
2023-12-06T07:21:04Z

On Wed, Dec 06, 2023 at 02:50:56PM +0800, Yu Kuai wrote:
> I'm a litter confused, so there are 3 use cases:
> 1) use GFP_USER, default gfp from bdev_alloc.
> 2) use GFP_KERNEL
> 3) use GFP_NOFS
>
> I understand that you're suggesting memalloc_nofs_save() to distinguish
> 2 and 3, but how can I distinguish 1?

You shouldn't. Diverging from the default flags except for clearing
the FS or IO flags is simply a bug. Note that things like block2mtd
should probably also ensure a noio allocation if they aren't doing that
yet.

> > - use memalloc_nofs_save in extet instead of using
> > mapping_gfp_constraint to clear it from the mapping flags
> > - remove __ext4_sb_bread_gfp and just have buffer.c helper that does
> > the right thing (either by changing the calling conventions of an
> > existing one, or adding a new one).
>
> Thanks for the suggestions, but I'm not sure how to do this yet, I must
> read more ext4 code.

the nofs save part should be trivial. You can just skip the rest for
now as it's not needed for this patch series.