From: Jan Schmidt Date: Thu, 16 Jun 2011 10:05:19 +0000 (+0200) Subject: btrfs: Put mirror_num in bi_bdev X-Git-Tag: v3.2-rc1~21^2~8^2~2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=2774b2ca3d49124bf1ae89e8d575b3dab4221266;p=~emulex%2Finfiniband.git btrfs: Put mirror_num in bi_bdev The error correction code wants to make sure that only the bad mirror is rewritten. Thus, we need to know which mirror is the bad one. I did not find a more apropriate field than bi_bdev. But I think using this is fine, because it is modified by the block layer, anyway, and should not be read after the bio returned. Signed-off-by: Jan Schmidt --- diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 9db4d7962f9..18baac5a3f6 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -3216,6 +3216,8 @@ static void btrfs_end_bio(struct bio *bio, int err) } bio->bi_private = bbio->private; bio->bi_end_io = bbio->end_io; + bio->bi_bdev = (struct block_device *) + (unsigned long)bbio->mirror_num; /* only send an error to the higher layers if it is * beyond the tolerance of the multi-bio */