# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.576 -> 1.577 # drivers/block/DAC960.c 1.40 -> 1.41 # drivers/block/umem.c 1.19 -> 1.20 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/09/18 axboe@burns.home.kernel.dk 1.577 # update DAC960 and umem to new bio_endio() completions # -------------------------------------------- # diff -Nru a/drivers/block/DAC960.c b/drivers/block/DAC960.c --- a/drivers/block/DAC960.c Wed Sep 18 19:55:42 2002 +++ b/drivers/block/DAC960.c Wed Sep 18 19:55:42 2002 @@ -2909,10 +2909,8 @@ static inline void DAC960_ProcessCompletedBuffer(BufferHeader_T *BufferHeader, boolean SuccessfulIO) { - if (SuccessfulIO) - set_bit(BIO_UPTODATE, &BufferHeader->bi_flags); + bio_endio(BufferHeader, BufferHeader->bi_size, SuccessfulIO ? 0 : -EIO); blk_finished_io(bio_sectors(BufferHeader)); - BufferHeader->bi_end_io(BufferHeader); } static inline int DAC960_PartitionByCommand(DAC960_Command_T *Command) diff -Nru a/drivers/block/umem.c b/drivers/block/umem.c --- a/drivers/block/umem.c Wed Sep 18 19:55:42 2002 +++ b/drivers/block/umem.c Wed Sep 18 19:55:42 2002 @@ -544,9 +544,16 @@ while(return_bio) { struct bio *bio = return_bio; + int bytes = bio->bi_size; + return_bio = bio->bi_next; bio->bi_next = NULL; - bio->bi_end_io(bio); + /* should use bio_endio(), however already cleared + * BIO_UPTODATE. so set bio->bi_size = 0 manually to indicate + * completely done + */ + bio->bi_size = 0; + bio->bi_end_io(bio, bytes, 0); } } @@ -560,8 +567,6 @@ struct cardinfo *card = q->queuedata; PRINTK("mm_make_request %ld %d\n", bh->b_rsector, bh->b_size); - /* set uptodate now, and clear it if there are any errors */ - set_bit(BIO_UPTODATE, &bio->bi_flags); bio->bi_phys_segments = bio->bi_idx; /* count of completed segments*/ spin_lock_bh(&card->lock); *card->biotail = bio;