On 2/17/21 14:03, Pavel Machek wrote: > Hi! >> diff --git a/kernel/power/swap.c b/kernel/power/swap.c >> index c73f2e295167..e92e36c053a6 100644 >> --- a/kernel/power/swap.c >> +++ b/kernel/power/swap.c >> @@ -271,13 +271,12 @@ static int hib_submit_io(int op, int op_flags, pgoff_t page_off, void *addr, >> struct hib_bio_batch *hb) >> { >> struct page *page = virt_to_page(addr); >> + sector_t sect = page_off * (PAGE_SIZE >> 9); >> struct bio *bio; >> int error = 0; >> >> - bio = bio_alloc(GFP_NOIO | __GFP_HIGH, 1); >> - bio->bi_iter.bi_sector = page_off * (PAGE_SIZE >> 9); >> - bio_set_dev(bio, hib_resume_bdev); >> - bio_set_op_attrs(bio, op, op_flags); >> + bio = bio_new(hib_resume_bdev, sect, op, op_flags, 1, >> + GFP_NOIO | __GFP_HIGH); >> > C function with 6 arguments... dunno. Old version looks comparable or > even more readable... > > Best regards, > Pavel The library functions that are in the kernel tree which are used in different file-systems and fabrics drivers do take 6 arguments. Plus what is the point of duplicating code for mandatory parameters all over the kernel ?