]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - block/genhd.c
[SCSI] aic79xx: user visible misuse wrong SI units (not disk size!)
[linux-2.6-omap-h63xx.git] / block / genhd.c
index d9de3e482d1e3687e1eac462bf9956f48fc861bc..646e1d2507c70d2ba88824c3dd84d91874ecb192 100644 (file)
@@ -358,7 +358,6 @@ static int blk_mangle_minor(int minor)
 /**
  * blk_alloc_devt - allocate a dev_t for a partition
  * @part: partition to allocate dev_t for
- * @gfp_mask: memory allocation flag
  * @devt: out parameter for resulting dev_t
  *
  * Allocate a dev_t for block device.
@@ -535,7 +534,7 @@ void unlink_gendisk(struct gendisk *disk)
 /**
  * get_gendisk - get partitioning information for a given device
  * @devt: device to get partitioning information for
- * @part: returned partition index
+ * @partno: returned partition index
  *
  * This function gets the structure containing partitioning
  * information for the given device @devt.
@@ -578,13 +577,13 @@ struct gendisk *get_gendisk(dev_t devt, int *partno)
  * RETURNS:
  * Resulting block_device on success, NULL on failure.
  */
-extern struct block_device *bdget_disk(struct gendisk *disk, int partno)
+struct block_device *bdget_disk(struct gendisk *disk, int partno)
 {
        struct hd_struct *part;
        struct block_device *bdev = NULL;
 
        part = disk_get_part(disk, partno);
-       if (part && (part->nr_sects || partno == 0))
+       if (part)
                bdev = bdget(part_devt(part));
        disk_put_part(part);
 
@@ -654,7 +653,7 @@ static void *disk_seqf_start(struct seq_file *seqf, loff_t *pos)
        struct class_dev_iter *iter;
        struct device *dev;
 
-       iter = kmalloc(GFP_KERNEL, sizeof(*iter));
+       iter = kmalloc(sizeof(*iter), GFP_KERNEL);
        if (!iter)
                return ERR_PTR(-ENOMEM);
 
@@ -697,7 +696,7 @@ static void *show_partition_start(struct seq_file *seqf, loff_t *pos)
        static void *p;
 
        p = disk_seqf_start(seqf, pos);
-       if (!IS_ERR(p) && p)
+       if (!IS_ERR(p) && p && !*pos)
                seq_puts(seqf, "major minor  #blocks  name\n\n");
        return p;
 }
@@ -817,6 +816,11 @@ static DEVICE_ATTR(stat, S_IRUGO, part_stat_show, NULL);
 static struct device_attribute dev_attr_fail =
        __ATTR(make-it-fail, S_IRUGO|S_IWUSR, part_fail_show, part_fail_store);
 #endif
+#ifdef CONFIG_FAIL_IO_TIMEOUT
+static struct device_attribute dev_attr_fail_timeout =
+       __ATTR(io-timeout-fail,  S_IRUGO|S_IWUSR, part_timeout_show,
+               part_timeout_store);
+#endif
 
 static struct attribute *disk_attrs[] = {
        &dev_attr_range.attr,
@@ -828,6 +832,9 @@ static struct attribute *disk_attrs[] = {
        &dev_attr_stat.attr,
 #ifdef CONFIG_FAIL_MAKE_REQUEST
        &dev_attr_fail.attr,
+#endif
+#ifdef CONFIG_FAIL_IO_TIMEOUT
+       &dev_attr_fail_timeout.attr,
 #endif
        NULL
 };
@@ -1031,7 +1038,7 @@ dev_t blk_lookup_devt(const char *name, int partno)
                        continue;
 
                part = disk_get_part(disk, partno);
-               if (part && (part->nr_sects || partno == 0)) {
+               if (part) {
                        devt = part_devt(part);
                        disk_put_part(part);
                        break;