aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Riffard <laurent.riffard@free.fr>2007-09-21 02:32:28 -0400
committerJens Axboe <jens.axboe@oracle.com>2007-10-16 05:05:09 -0400
commit7e3da6c4b9a69f44b758b2c88190ac33ac4ea1a1 (patch)
tree3a9efb50fec408d090fbf360da55cf8265139e65
parent761a15e7ac0be7df0c86a55f38a84c080fa179ae (diff)
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>
-rw-r--r--drivers/block/pktcdvd.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index ba2f550963bc..a8130a4ad6d4 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -1147,6 +1147,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
1147 bio->bi_end_io = pkt_end_io_read; 1147 bio->bi_end_io = pkt_end_io_read;
1148 bio->bi_private = pkt; 1148 bio->bi_private = pkt;
1149 bio->bi_io_vec = vec; 1149 bio->bi_io_vec = vec;
1150 bio->bi_destructor = pkt_bio_destructor;
1150 1151
1151 p = (f * CD_FRAMESIZE) / PAGE_SIZE; 1152 p = (f * CD_FRAMESIZE) / PAGE_SIZE;
1152 offset = (f * CD_FRAMESIZE) % PAGE_SIZE; 1153 offset = (f * CD_FRAMESIZE) % PAGE_SIZE;
@@ -1444,6 +1445,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
1444 pkt->w_bio->bi_end_io = pkt_end_io_packet_write; 1445 pkt->w_bio->bi_end_io = pkt_end_io_packet_write;
1445 pkt->w_bio->bi_private = pkt; 1446 pkt->w_bio->bi_private = pkt;
1446 pkt->w_bio->bi_io_vec = bvec; 1447 pkt->w_bio->bi_io_vec = bvec;
1448 pkt->w_bio->bi_destructor = pkt_bio_destructor;
1447 for (f = 0; f < pkt->frames; f++) 1449 for (f = 0; f < pkt->frames; f++)
1448 if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset)) 1450 if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset))
1449 BUG(); 1451 BUG();