diff options
Diffstat (limited to 'drivers/s390/block/dasd_genhd.c')
-rw-r--r-- | drivers/s390/block/dasd_genhd.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c index 12c7d296eaa8..d163632101d2 100644 --- a/drivers/s390/block/dasd_genhd.c +++ b/drivers/s390/block/dasd_genhd.c | |||
@@ -83,10 +83,12 @@ dasd_gendisk_alloc(struct dasd_device *device) | |||
83 | void | 83 | void |
84 | dasd_gendisk_free(struct dasd_device *device) | 84 | dasd_gendisk_free(struct dasd_device *device) |
85 | { | 85 | { |
86 | del_gendisk(device->gdp); | 86 | if (device->gdp) { |
87 | device->gdp->queue = 0; | 87 | del_gendisk(device->gdp); |
88 | put_disk(device->gdp); | 88 | device->gdp->queue = NULL; |
89 | device->gdp = 0; | 89 | put_disk(device->gdp); |
90 | device->gdp = NULL; | ||
91 | } | ||
90 | } | 92 | } |
91 | 93 | ||
92 | /* | 94 | /* |
@@ -136,7 +138,7 @@ dasd_destroy_partitions(struct dasd_device * device) | |||
136 | * device->bdev to lower the offline open_count limit again. | 138 | * device->bdev to lower the offline open_count limit again. |
137 | */ | 139 | */ |
138 | bdev = device->bdev; | 140 | bdev = device->bdev; |
139 | device->bdev = 0; | 141 | device->bdev = NULL; |
140 | 142 | ||
141 | /* | 143 | /* |
142 | * See fs/partition/check.c:delete_partition | 144 | * See fs/partition/check.c:delete_partition |
@@ -145,7 +147,7 @@ dasd_destroy_partitions(struct dasd_device * device) | |||
145 | */ | 147 | */ |
146 | memset(&bpart, 0, sizeof(struct blkpg_partition)); | 148 | memset(&bpart, 0, sizeof(struct blkpg_partition)); |
147 | memset(&barg, 0, sizeof(struct blkpg_ioctl_arg)); | 149 | memset(&barg, 0, sizeof(struct blkpg_ioctl_arg)); |
148 | barg.data = &bpart; | 150 | barg.data = (void __user *) &bpart; |
149 | barg.op = BLKPG_DEL_PARTITION; | 151 | barg.op = BLKPG_DEL_PARTITION; |
150 | for (bpart.pno = device->gdp->minors - 1; bpart.pno > 0; bpart.pno--) | 152 | for (bpart.pno = device->gdp->minors - 1; bpart.pno > 0; bpart.pno--) |
151 | ioctl_by_bdev(bdev, BLKPG, (unsigned long) &barg); | 153 | ioctl_by_bdev(bdev, BLKPG, (unsigned long) &barg); |