#include <linux/module.h>
#include <linux/blktrace_api.h>
#include "partitions/check.h"
extern void md_autodetect_dev(dev_t dev);
char *disk_name(struct gendisk *hd, int partno, char *buf)
snprintf(buf, BDEVNAME_SIZE, "%s", hd->disk_name);
else if (isdigit(hd->disk_name[strlen(hd->disk_name)-1]))
snprintf(buf, BDEVNAME_SIZE, "%sp%d", hd->disk_name, partno);
snprintf(buf, BDEVNAME_SIZE, "%s%d", hd->disk_name, partno);
const char *bdevname(struct block_device *bdev, char *buf)
return disk_name(bdev->bd_disk, bdev->bd_part->partno, buf);
const char *bio_devname(struct bio *bio, char *buf)
return disk_name(bio->bi_disk, bio->bi_partno, buf);
EXPORT_SYMBOL(bio_devname);
const char *__bdevname(dev_t dev, char *buffer)
scnprintf(buffer, BDEVNAME_SIZE, "unknown-block(%u,%u)",
EXPORT_SYMBOL(__bdevname);
static ssize_t part_partition_show(struct device *dev,
struct device_attribute *attr, char *buf)
struct hd_struct *p = dev_to_part(dev);
return sprintf(buf, "%d\n", p->partno);
static ssize_t part_start_show(struct device *dev,
struct device_attribute *attr, char *buf)
struct hd_struct *p = dev_to_part(dev);
return sprintf(buf, "%llu\n",(unsigned long long)p->start_sect);
ssize_t part_size_show(struct device *dev,
struct device_attribute *attr, char *buf)