Hi, Christoph On 2020/5/28 13:07, Christoph Hellwig wrote: > On Tue, May 26, 2020 at 03:17:46PM +0800, zhangyi (F) wrote: >> Pick out ll_rw_one_block() helper function from ll_rw_block() for >> submitting one locked buffer for reading/writing. > > That should probably read factor out instead of pick out. > >> >> Signed-off-by: zhangyi (F) <yi.zhang@xxxxxxxxxx> >> --- >> fs/buffer.c | 41 ++++++++++++++++++++++--------------- >> include/linux/buffer_head.h | 1 + >> 2 files changed, 26 insertions(+), 16 deletions(-) >> >> diff --git a/fs/buffer.c b/fs/buffer.c >> index a60f60396cfa..3a2226f88b2d 100644 >> --- a/fs/buffer.c >> +++ b/fs/buffer.c >> @@ -3081,6 +3081,29 @@ int submit_bh(int op, int op_flags, struct buffer_head *bh) >> } >> EXPORT_SYMBOL(submit_bh); >> >> +void ll_rw_one_block(int op, int op_flags, struct buffer_head *bh) >> +{ >> + BUG_ON(!buffer_locked(bh)); >> + >> + if (op == WRITE) { >> + if (test_clear_buffer_dirty(bh)) { >> + bh->b_end_io = end_buffer_write_sync; >> + get_bh(bh); >> + submit_bh(op, op_flags, bh); >> + return; >> + } >> + } else { >> + if (!buffer_uptodate(bh)) { >> + bh->b_end_io = end_buffer_read_sync; >> + get_bh(bh); >> + submit_bh(op, op_flags, bh); >> + return; >> + } >> + } >> + unlock_buffer(bh); >> +} >> +EXPORT_SYMBOL(ll_rw_one_block); > > I don't think you want separate read and write sides. In fact I'm not > sure you want the helper at all. At this point just open coding it > rather than adding more overhead to core code might be a better idea. > Yeah, what I want is only the read side, it's fine by me to open coding it. Thanks, Yi.