Message ID | 20210128071133.60335-30-chaitanya.kulkarni@wdc.com |
---|---|
State | New |
Headers | show |
Series | block: introduce bio_new() | expand |
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
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 ?
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); if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) { pr_err("Adding page to bio failed at %llu\n",
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> --- kernel/power/swap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)