diff options
| author | Alexander Viro <viro@math.psu.edu> | 2002-04-24 23:51:04 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-04-24 23:51:04 -0700 |
| commit | 90012e6ec7ead7a4374f86d03ff09c4d14b41ebe (patch) | |
| tree | 8a57242fa5f17fb284081a671a0ff8c276376adb /drivers/block/loop.c | |
| parent | 61e3b7fcb0a88fb82e93b9b5c384ae70e293ded7 (diff) | |
[PATCH] (13/15) big struct block_device * push (first series)
- *NOW* all places that (re)assign ->bi_dev have relevant struct
block_device *. ->bi_bdev (struct block_device * equivalent of
->bi_dev) introduced, ->bi_dev removed, users updated.
Diffstat (limited to 'drivers/block/loop.c')
| -rw-r--r-- | drivers/block/loop.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 1683819aa124..b2b9d7411dfb 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -380,7 +380,7 @@ static struct bio *loop_get_bio(struct loop_device *lo) static void loop_end_io_transfer(struct bio *bio) { struct bio *rbh = bio->bi_private; - struct loop_device *lo = &loop_dev[minor(rbh->bi_dev)]; + struct loop_device *lo = &loop_dev[minor(to_kdev_t(rbh->bi_bdev->bd_dev))]; int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); if (!uptodate || bio_rw(bio) == WRITE) { @@ -413,7 +413,7 @@ out_bh: bio->bi_sector = rbh->bi_sector + (lo->lo_offset >> 9); bio->bi_rw = rbh->bi_rw; spin_lock_irq(&lo->lo_lock); - bio->bi_dev = to_kdev_t(lo->lo_device->bd_dev); + bio->bi_bdev = lo->lo_device; spin_unlock_irq(&lo->lo_lock); return bio; @@ -425,11 +425,12 @@ static int loop_make_request(request_queue_t *q, struct bio *rbh) struct loop_device *lo; unsigned long IV; int rw = bio_rw(rbh); + int unit = minor(to_kdev_t(rbh->bi_bdev->bd_dev)); - if (minor(rbh->bi_dev) >= max_loop) + if (unit >= max_loop) goto out; - lo = &loop_dev[minor(rbh->bi_dev)]; + lo = &loop_dev[unit]; spin_lock_irq(&lo->lo_lock); if (lo->lo_state != Lo_bound) goto inactive; |
