md.c (a39907fa2fdb73d3c0fb06eff06d855c3298d707) | md.c (9a1c3542768b5a58e45a9216921cd10a3bae1205) |
---|---|
1/* 2 md.c : Multiple Devices driver for Linux 3 Copyright (C) 1998, 1999, 2000 Ingo Molnar 4 5 completely rewritten, based on the MD driver code from Marc Zyngier 6 7 Changes: 8 --- 1506 unchanged lines hidden (view full) --- 1515 printk(KERN_ERR "md: could not open %s.\n", 1516 __bdevname(dev, b)); 1517 return PTR_ERR(bdev); 1518 } 1519 err = bd_claim(bdev, shared ? (mdk_rdev_t *)lock_rdev : rdev); 1520 if (err) { 1521 printk(KERN_ERR "md: could not bd_claim %s.\n", 1522 bdevname(bdev, b)); | 1/* 2 md.c : Multiple Devices driver for Linux 3 Copyright (C) 1998, 1999, 2000 Ingo Molnar 4 5 completely rewritten, based on the MD driver code from Marc Zyngier 6 7 Changes: 8 --- 1506 unchanged lines hidden (view full) --- 1515 printk(KERN_ERR "md: could not open %s.\n", 1516 __bdevname(dev, b)); 1517 return PTR_ERR(bdev); 1518 } 1519 err = bd_claim(bdev, shared ? (mdk_rdev_t *)lock_rdev : rdev); 1520 if (err) { 1521 printk(KERN_ERR "md: could not bd_claim %s.\n", 1522 bdevname(bdev, b)); |
1523 blkdev_put(bdev); | 1523 blkdev_put(bdev, FMODE_READ|FMODE_WRITE); |
1524 return err; 1525 } 1526 if (!shared) 1527 set_bit(AllReserved, &rdev->flags); 1528 rdev->bdev = bdev; 1529 return err; 1530} 1531 1532static void unlock_rdev(mdk_rdev_t *rdev) 1533{ 1534 struct block_device *bdev = rdev->bdev; 1535 rdev->bdev = NULL; 1536 if (!bdev) 1537 MD_BUG(); 1538 bd_release(bdev); | 1524 return err; 1525 } 1526 if (!shared) 1527 set_bit(AllReserved, &rdev->flags); 1528 rdev->bdev = bdev; 1529 return err; 1530} 1531 1532static void unlock_rdev(mdk_rdev_t *rdev) 1533{ 1534 struct block_device *bdev = rdev->bdev; 1535 rdev->bdev = NULL; 1536 if (!bdev) 1537 MD_BUG(); 1538 bd_release(bdev); |
1539 blkdev_put(bdev); | 1539 blkdev_put(bdev, FMODE_READ|FMODE_WRITE); |
1540} 1541 1542void md_autodetect_dev(dev_t dev); 1543 1544static void export_rdev(mdk_rdev_t * rdev) 1545{ 1546 char b[BDEVNAME_SIZE]; 1547 printk(KERN_INFO "md: export_rdev(%s)\n", --- 4876 unchanged lines hidden --- | 1540} 1541 1542void md_autodetect_dev(dev_t dev); 1543 1544static void export_rdev(mdk_rdev_t * rdev) 1545{ 1546 char b[BDEVNAME_SIZE]; 1547 printk(KERN_INFO "md: export_rdev(%s)\n", --- 4876 unchanged lines hidden --- |