pktcdvd: don't rely on bio_init() preserving bio->bi_destructor
Signed-off-by: Laurent Riffard <laurent.riffard@free.fr> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
761a15e7ac
commit
7e3da6c4b9
|
@ -1147,6 +1147,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
|
||||||
bio->bi_end_io = pkt_end_io_read;
|
bio->bi_end_io = pkt_end_io_read;
|
||||||
bio->bi_private = pkt;
|
bio->bi_private = pkt;
|
||||||
bio->bi_io_vec = vec;
|
bio->bi_io_vec = vec;
|
||||||
|
bio->bi_destructor = pkt_bio_destructor;
|
||||||
|
|
||||||
p = (f * CD_FRAMESIZE) / PAGE_SIZE;
|
p = (f * CD_FRAMESIZE) / PAGE_SIZE;
|
||||||
offset = (f * CD_FRAMESIZE) % PAGE_SIZE;
|
offset = (f * CD_FRAMESIZE) % PAGE_SIZE;
|
||||||
|
@ -1444,6 +1445,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
|
||||||
pkt->w_bio->bi_end_io = pkt_end_io_packet_write;
|
pkt->w_bio->bi_end_io = pkt_end_io_packet_write;
|
||||||
pkt->w_bio->bi_private = pkt;
|
pkt->w_bio->bi_private = pkt;
|
||||||
pkt->w_bio->bi_io_vec = bvec;
|
pkt->w_bio->bi_io_vec = bvec;
|
||||||
|
pkt->w_bio->bi_destructor = pkt_bio_destructor;
|
||||||
for (f = 0; f < pkt->frames; f++)
|
for (f = 0; f < pkt->frames; f++)
|
||||||
if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset))
|
if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset))
|
||||||
BUG();
|
BUG();
|
||||||
|
|
Loading…
Reference in New Issue