summaryrefslogtreecommitdiff
path: root/drivers/block
diff options
context:
space:
mode:
authorAlexander Viro <viro@parcelfarce.linux.theplanet.co.uk>2003-04-27 03:47:38 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-04-27 03:47:38 -0700
commit07affbb1eadddfbab8e2270ee17965419887d8a2 (patch)
treea1f506bc3939d605fc1f3017610c3cbefe999624 /drivers/block
parent5e3ecdac24a4311ee8fa5c2203165e2bec8907e1 (diff)
[PATCH] bdget_disk()
New helper - bdget_disk(gendisk, partition) invalidate_device() replaced with invalidate_partition(disk, part)
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/floppy.c2
-rw-r--r--drivers/block/floppy98.c2
-rw-r--r--drivers/block/genhd.c11
-rw-r--r--drivers/block/ioctl.c2
4 files changed, 14 insertions, 3 deletions
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index e85256befeec..ee016885325c 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -3885,7 +3885,7 @@ static int floppy_read_block_0(struct gendisk *disk)
struct block_device *bdev;
int ret;
- bdev = bdget(MKDEV(disk->major, disk->first_minor));
+ bdev = bdget_disk(disk, 0);
if (!bdev) {
printk("No block device for %s\n", disk->disk_name);
BUG();
diff --git a/drivers/block/floppy98.c b/drivers/block/floppy98.c
index a01a515f0618..226b0cee8a20 100644
--- a/drivers/block/floppy98.c
+++ b/drivers/block/floppy98.c
@@ -3995,7 +3995,7 @@ static int floppy_read_block_0(struct gendisk *disk)
struct block_device *bdev;
int ret;
- bdev = bdget(MKDEV(disk->major, disk->first_minor));
+ bdev = bdget_disk(disk, 0);
if (!bdev) {
printk("No block device for %s\n", disk->disk_name);
BUG();
diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c
index 34d9d4dd91fc..fe922bcc5805 100644
--- a/drivers/block/genhd.c
+++ b/drivers/block/genhd.c
@@ -721,6 +721,17 @@ int bdev_read_only(struct block_device *bdev)
return disk->policy;
}
+int invalidate_partition(struct gendisk *disk, int index)
+{
+ int res = 0;
+ struct block_device *bdev = bdget_disk(disk, index);
+ if (bdev)
+ res = __invalidate_device(bdev, 1);
+ bdput(bdev);
+ return res;
+}
+
EXPORT_SYMBOL(bdev_read_only);
EXPORT_SYMBOL(set_device_ro);
EXPORT_SYMBOL(set_disk_ro);
+EXPORT_SYMBOL(invalidate_partition);
diff --git a/drivers/block/ioctl.c b/drivers/block/ioctl.c
index 3dbd0824319b..04aae2485102 100644
--- a/drivers/block/ioctl.c
+++ b/drivers/block/ioctl.c
@@ -62,7 +62,7 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg *arg)
if (disk->part[part - 1]->nr_sects == 0)
return -ENXIO;
/* partition in use? Incomplete check for now. */
- bdevp = bdget(MKDEV(disk->major, disk->first_minor) + part);
+ bdevp = bdget_disk(disk, part);
if (!bdevp)
return -ENOMEM;
if (bd_claim(bdevp, &holder) < 0) {