[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH RFC v2 for-6.8/block 15/18] buffer: add a new helper to read sb block
Hi, 在 2023/12/12 1:27, Jan Kara 写道: On Mon 11-12-23 22:07:53, Yu Kuai wrote:From: Yu Kuai <yukuai3@xxxxxxxxxx> 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@xxxxxxxxxx>...+/* + * 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |