@@ -525,7 +525,6 @@ static struct packet_data *pkt_alloc_packet_data(int frames)
525525 pkt -> w_bio = bio_kmalloc (frames , GFP_KERNEL );
526526 if (!pkt -> w_bio )
527527 goto no_bio ;
528- bio_init (pkt -> w_bio , NULL , pkt -> w_bio -> bi_inline_vecs , frames , 0 );
529528
530529 for (i = 0 ; i < frames / FRAMES_PER_PAGE ; i ++ ) {
531530 pkt -> pages [i ] = alloc_page (GFP_KERNEL |__GFP_ZERO );
@@ -537,26 +536,20 @@ static struct packet_data *pkt_alloc_packet_data(int frames)
537536 bio_list_init (& pkt -> orig_bios );
538537
539538 for (i = 0 ; i < frames ; i ++ ) {
540- struct bio * bio = bio_kmalloc (1 , GFP_KERNEL );
541- if (!bio )
539+ pkt -> r_bios [ i ] = bio_kmalloc (1 , GFP_KERNEL );
540+ if (!pkt -> r_bios [ i ] )
542541 goto no_rd_bio ;
543- bio_init (bio , NULL , bio -> bi_inline_vecs , 1 , 0 );
544- pkt -> r_bios [i ] = bio ;
545542 }
546543
547544 return pkt ;
548545
549546no_rd_bio :
550- for (i = 0 ; i < frames ; i ++ ) {
551- if (pkt -> r_bios [i ])
552- bio_uninit (pkt -> r_bios [i ]);
547+ for (i = 0 ; i < frames ; i ++ )
553548 kfree (pkt -> r_bios [i ]);
554- }
555549no_page :
556550 for (i = 0 ; i < frames / FRAMES_PER_PAGE ; i ++ )
557551 if (pkt -> pages [i ])
558552 __free_page (pkt -> pages [i ]);
559- bio_uninit (pkt -> w_bio );
560553 kfree (pkt -> w_bio );
561554no_bio :
562555 kfree (pkt );
@@ -571,13 +564,10 @@ static void pkt_free_packet_data(struct packet_data *pkt)
571564{
572565 int i ;
573566
574- for (i = 0 ; i < pkt -> frames ; i ++ ) {
575- bio_uninit (pkt -> r_bios [i ]);
567+ for (i = 0 ; i < pkt -> frames ; i ++ )
576568 kfree (pkt -> r_bios [i ]);
577- }
578569 for (i = 0 ; i < pkt -> frames / FRAMES_PER_PAGE ; i ++ )
579570 __free_page (pkt -> pages [i ]);
580- bio_uninit (pkt -> w_bio );
581571 kfree (pkt -> w_bio );
582572 kfree (pkt );
583573}
@@ -952,6 +942,7 @@ static void pkt_end_io_read(struct bio *bio)
952942
953943 if (bio -> bi_status )
954944 atomic_inc (& pkt -> io_errors );
945+ bio_uninit (bio );
955946 if (atomic_dec_and_test (& pkt -> io_wait )) {
956947 atomic_inc (& pkt -> run_sm );
957948 wake_up (& pd -> wqueue );
@@ -969,6 +960,7 @@ static void pkt_end_io_packet_write(struct bio *bio)
969960
970961 pd -> stats .pkt_ended ++ ;
971962
963+ bio_uninit (bio );
972964 pkt_bio_finished (pd );
973965 atomic_dec (& pkt -> io_wait );
974966 atomic_inc (& pkt -> run_sm );
@@ -1023,7 +1015,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
10231015 continue ;
10241016
10251017 bio = pkt -> r_bios [f ];
1026- bio_reset (bio , pd -> bdev , REQ_OP_READ );
1018+ bio_init (bio , pd -> bdev , bio -> bi_inline_vecs , 1 , REQ_OP_READ );
10271019 bio -> bi_iter .bi_sector = pkt -> sector + f * (CD_FRAMESIZE >> 9 );
10281020 bio -> bi_end_io = pkt_end_io_read ;
10291021 bio -> bi_private = pkt ;
@@ -1236,7 +1228,8 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
12361228{
12371229 int f ;
12381230
1239- bio_reset (pkt -> w_bio , pd -> bdev , REQ_OP_WRITE );
1231+ bio_init (pkt -> w_bio , pd -> bdev , pkt -> w_bio -> bi_inline_vecs , pkt -> frames ,
1232+ REQ_OP_WRITE );
12401233 pkt -> w_bio -> bi_iter .bi_sector = pkt -> sector ;
12411234 pkt -> w_bio -> bi_end_io = pkt_end_io_packet_write ;
12421235 pkt -> w_bio -> bi_private = pkt ;
0 commit comments