Messages in this thread | | | Subject | Re: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to read sb block | From | Yu Kuai <> | Date | Tue, 12 Dec 2023 09:32:10 +0800 |
| |
Hi,
在 2023/12/12 1:27, Jan Kara 写道: > On Mon 11-12-23 22:07:53, Yu Kuai wrote: >> From: Yu Kuai <yukuai3@huawei.com> >> >> Unlike __bread_gfp(), ext4 has special handing while reading sb block: >> >> 1) __GFP_NOFAIL is not set, and memory allocation can fail; >> 2) If buffer write failed before, set buffer uptodate and don't read >> block from disk; >> 3) REQ_META is set for all IO, and REQ_PRIO is set for reading xattr; >> 4) If failed, return error ptr instead of NULL; >> >> This patch add a new helper __bread_gfp2() that will match above 2 and 3( >> 1 will be used, and 4 will still be encapsulated by ext4), and prepare to >> prevent calling mapping_gfp_constraint() directly on bd_inode->i_mapping >> in ext4. >> >> Signed-off-by: Yu Kuai <yukuai3@huawei.com> > ... >> +/* >> + * This works like __bread_gfp() except: >> + * 1) If buffer write failed before, set buffer uptodate and don't read >> + * block from disk; >> + * 2) Caller can pass in additional op_flags like REQ_META; >> + */ >> +struct buffer_head * >> +__bread_gfp2(struct block_device *bdev, sector_t block, unsigned int size, >> + blk_opf_t op_flags, gfp_t gfp) >> +{ >> + return bread_gfp(bdev, block, size, op_flags, gfp, true); >> +} >> +EXPORT_SYMBOL(__bread_gfp2); > > __bread_gfp2() is not a great name, why not just using bread_gfp() > directly? I'm not a huge fan of boolean arguments but three different flags > arguments would be too much for my taste ;) so I guess I can live with > that.
I agree that __bread_gfp2 is not a greate name, if possible, I'll try to figure out a better name for v3.
Thanks for reviewing this patchset! Kuai > > Honza >
| |