On 26 Jan 11:09, Jack Wang wrote: > > > > - if (bio->bi_end_io != md_end_io) { > > - struct md_io *md_io; > > - > > - md_io = mempool_alloc(&mddev->md_io_pool, GFP_NOIO); > > - md_io->mddev = mddev; > > - md_io->orig_bi_end_io = bio->bi_end_io; > > - md_io->orig_bi_private = bio->bi_private; > > - > > - bio->bi_end_io = md_end_io; > > - bio->bi_private = md_io; > > - > > - md_io->start_time = part_start_io_acct(mddev->gendisk, > > - &md_io->part, bio); > > - } > > - > > + /* > > + * save the sectors now since our bio can > > + * go away inside make_request > > + */ > > + sectors = bio_sectors(bio); > This code snip is not inside the original patch, and it's not in > latest upstream too. > > /* bio could be mergeable after passing to underlayer */ > > bio->bi_opf &= ~REQ_NOMERGE; > > > > md_handle_request(mddev, bio); > > > > + part_stat_lock(); > > + part_stat_inc(&mddev->gendisk->part0, ios[sgrp]); > > + part_stat_add(&mddev->gendisk->part0, sectors[sgrp], sectors); > > + part_stat_unlock(); > > + > same here, this code snip is not inside the original patch, and it's > not in latest upstream too. Both snippets came from the code before 41d2d848e5c0 that the patch is being reverted here. As I explained in my original message, upstream is different because of 99dfc43ecbf6 which is not in 5.10. > I think would be good keep it as the upstream version. If you don't include these lines, isn't this worse as it's not calling either part_start_io_acct or bio_start_io_acct (in 99dfc43ecbf6)? -- Guillaume Morin <guillaume@xxxxxxxxxxx>