diff options
Diffstat (limited to 'drivers/s390/block/dasd_genhd.c')
-rw-r--r-- | drivers/s390/block/dasd_genhd.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c index 1d52db406b2..96c49349701 100644 --- a/drivers/s390/block/dasd_genhd.c +++ b/drivers/s390/block/dasd_genhd.c | |||
@@ -9,7 +9,7 @@ | |||
9 | * | 9 | * |
10 | * gendisk related functions for the dasd driver. | 10 | * gendisk related functions for the dasd driver. |
11 | * | 11 | * |
12 | * $Revision: 1.48 $ | 12 | * $Revision: 1.50 $ |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | 15 | #include <linux/config.h> |
@@ -31,12 +31,16 @@ int | |||
31 | dasd_gendisk_alloc(struct dasd_device *device) | 31 | dasd_gendisk_alloc(struct dasd_device *device) |
32 | { | 32 | { |
33 | struct gendisk *gdp; | 33 | struct gendisk *gdp; |
34 | int len; | 34 | int len, feature_ro; |
35 | 35 | ||
36 | /* Make sure the minor for this device exists. */ | 36 | /* Make sure the minor for this device exists. */ |
37 | if (device->devindex >= DASD_PER_MAJOR) | 37 | if (device->devindex >= DASD_PER_MAJOR) |
38 | return -EBUSY; | 38 | return -EBUSY; |
39 | 39 | ||
40 | feature_ro = dasd_get_feature(device->cdev, DASD_FEATURE_READONLY); | ||
41 | if (feature_ro < 0) | ||
42 | return feature_ro; | ||
43 | |||
40 | gdp = alloc_disk(1 << DASD_PARTN_BITS); | 44 | gdp = alloc_disk(1 << DASD_PARTN_BITS); |
41 | if (!gdp) | 45 | if (!gdp) |
42 | return -ENOMEM; | 46 | return -ENOMEM; |
@@ -71,7 +75,7 @@ dasd_gendisk_alloc(struct dasd_device *device) | |||
71 | 75 | ||
72 | sprintf(gdp->devfs_name, "dasd/%s", device->cdev->dev.bus_id); | 76 | sprintf(gdp->devfs_name, "dasd/%s", device->cdev->dev.bus_id); |
73 | 77 | ||
74 | if (test_bit(DASD_FLAG_RO, &device->flags)) | 78 | if (feature_ro) |
75 | set_disk_ro(gdp, 1); | 79 | set_disk_ro(gdp, 1); |
76 | gdp->private_data = device; | 80 | gdp->private_data = device; |
77 | gdp->queue = device->request_queue; | 81 | gdp->queue = device->request_queue; |