On Tuesday 09 March 2004 8:27 am, Joe Thornber wrote: > http://people.sistina.com/~thornber/dm/patches/2.6-unstable/2.6.4-rc2/2.6.4 >-rc2-udm1.tar.bz2 > > Revision 3: > Check the uptodate flag in sub-bios to see if there was an error. > [Mike Christie] Now that we're checking the uptodate flag in the bio on endio, we need to add the bio flags to dm_bio_details and dm_bio_record/restore. Otherwise, in mpath, when an I/O fails and is retried, it will appear to fail on every other path as well. -- Kevin Corry kevcorry@xxxxxxxxxx http://evms.sourceforge.net/ Add bi_flags to dm_bio_details. --- diff/drivers/md/dm-bio-record.h 2004-03-10 15:27:51.000000000 -0600 +++ source/drivers/md/dm-bio-record.h 2004-03-10 15:27:17.000000000 -0600 @@ -21,6 +21,7 @@ struct block_device *bi_bdev; unsigned int bi_size; unsigned short bi_idx; + unsigned long bi_flags; }; static inline void dm_bio_record(struct dm_bio_details *bd, struct bio *bio) @@ -29,6 +30,7 @@ bd->bi_bdev = bio->bi_bdev; bd->bi_size = bio->bi_size; bd->bi_idx = bio->bi_idx; + bd->bi_flags = bio->bi_flags; } static inline void dm_bio_restore(struct dm_bio_details *bd, struct bio *bio) @@ -37,6 +39,7 @@ bio->bi_bdev = bd->bi_bdev; bio->bi_size = bd->bi_size; bio->bi_idx = bd->bi_idx; + bio->bi_flags = bd->bi_flags; } #endif