]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/block/dcssblk.c
[S390] bus_id -> dev_name conversions
[linux-2.6-omap-h63xx.git] / drivers / s390 / block / dcssblk.c
index 01fcdd91b846533a920cc3076c67bf85ca3816c2..2aca79e952b0b28e5cba729a90cd1756b4990905 100644 (file)
@@ -91,7 +91,7 @@ static struct rw_semaphore dcssblk_devices_sem;
 static void
 dcssblk_release_segment(struct device *dev)
 {
-       PRINT_DEBUG("segment release fn called for %s\n", dev->bus_id);
+       PRINT_DEBUG("segment release fn called for %s\n", dev_name(dev));
        kfree(container_of(dev, struct dcssblk_dev_info, dev));
        module_put(THIS_MODULE);
 }
@@ -114,7 +114,7 @@ dcssblk_assign_free_minor(struct dcssblk_dev_info *dev_info)
                found = 0;
                // test if minor available
                list_for_each_entry(entry, &dcssblk_devices, lh)
-                       if (minor == entry->gd->first_minor)
+                       if (minor == MINOR(disk_devt(entry->gd)))
                                found++;
                if (!found) break; // got unused minor
        }
@@ -384,6 +384,11 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
         * get minor, add to list
         */
        down_write(&dcssblk_devices_sem);
+       if (dcssblk_get_device_by_name(local_buf)) {
+               up_write(&dcssblk_devices_sem);
+               rc = -EEXIST;
+               goto unload_seg;
+       }
        rc = dcssblk_assign_free_minor(dev_info);
        if (rc) {
                up_write(&dcssblk_devices_sem);
@@ -392,7 +397,7 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
                goto unload_seg;
        }
        sprintf(dev_info->gd->disk_name, "dcssblk%d",
-               dev_info->gd->first_minor);
+               MINOR(disk_devt(dev_info->gd)));
        list_add_tail(&dev_info->lh, &dcssblk_devices);
 
        if (!try_module_get(THIS_MODULE)) {
@@ -597,7 +602,8 @@ dcssblk_make_request(struct request_queue *q, struct bio *bio)
                case SEG_TYPE_SC:
                        /* cannot write to these segments */
                        if (bio_data_dir(bio) == WRITE) {
-                               PRINT_WARN("rejecting write to ro segment %s\n", dev_info->dev.bus_id);
+                               PRINT_WARN("rejecting write to ro segment %s\n",
+                                          dev_name(&dev_info->dev));
                                goto fail;
                        }
                }