Message ID | 20160106223139.2736.22899.stgit@dwillia2-desk3.amr.corp.intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Wed, 2016-01-06 at 14:31 -0800, Dan Williams wrote: > These actions are completely managed by a block driver or can use the > badblocks api directly. > > Signed-off-by: Dan Williams <dan.j.williams@intel.com> > --- > block/genhd.c | 42 ------------------------------------- > ----- > include/linux/genhd.h | 5 ----- > 2 files changed, 47 deletions(-) > > diff --git a/block/genhd.c b/block/genhd.c > index b96012849e26..eae2971a6d91 100644 > --- a/block/genhd.c > +++ b/block/genhd.c > @@ -506,16 +506,6 @@ static int exact_lock(dev_t devt, void *data) > return 0; > } > > -int disk_alloc_badblocks(struct gendisk *disk) > -{ > - disk->bb = kzalloc(sizeof(*(disk->bb)), GFP_KERNEL); > - if (!disk->bb) > - return -ENOMEM; In using the badblocks api directly, we lose all of these !disk->bb checks. I'll send out an incremental patch adding these checks directly into the badblocks api. > - > - return badblocks_init(disk->bb, 1); > -} > -EXPORT_SYMBOL(disk_alloc_badblocks); > - > static void register_disk(struct gendisk *disk) > { > struct device *ddev = disk_to_dev(disk); > @@ -695,38 +685,6 @@ void del_gendisk(struct gendisk *disk) > } > EXPORT_SYMBOL(del_gendisk); > > -/* > - * The gendisk usage of badblocks does not track acknowledgements > for > - * badblocks. We always assume they are acknowledged. > - */ > -int disk_check_badblocks(struct gendisk *disk, sector_t s, int > sectors, > - sector_t *first_bad, int *bad_sectors) > -{ > - if (!disk->bb) > - return 0; > - > - return badblocks_check(disk->bb, s, sectors, first_bad, > bad_sectors); > -} > -EXPORT_SYMBOL(disk_check_badblocks); > - > -int disk_set_badblocks(struct gendisk *disk, sector_t s, int > sectors) > -{ > - if (!disk->bb) > - return 0; > - > - return badblocks_set(disk->bb, s, sectors, 1); > -} > -EXPORT_SYMBOL(disk_set_badblocks); > - > -int disk_clear_badblocks(struct gendisk *disk, sector_t s, int > sectors) > -{ > - if (!disk->bb) > - return 0; > - > - return badblocks_clear(disk->bb, s, sectors); > -} > -EXPORT_SYMBOL(disk_clear_badblocks); > - > /* sysfs access to bad-blocks list. */ > static ssize_t disk_badblocks_show(struct device *dev, > struct device_attribute > *attr, > diff --git a/include/linux/genhd.h b/include/linux/genhd.h > index 34dbcd90a8fd..38b4d5d32581 100644 > --- a/include/linux/genhd.h > +++ b/include/linux/genhd.h > @@ -436,11 +436,6 @@ extern void del_gendisk(struct gendisk *gp); > extern void del_gendisk_queue(struct gendisk *disk); > extern struct gendisk *get_gendisk(dev_t dev, int *partno); > extern struct block_device *bdget_disk(struct gendisk *disk, int > partno); > -int disk_alloc_badblocks(struct gendisk *disk); > -extern int disk_check_badblocks(struct gendisk *disk, sector_t s, > int sectors, > - sector_t *first_bad, int *bad_sectors); > -extern int disk_set_badblocks(struct gendisk *disk, sector_t s, int > sectors); > -extern int disk_clear_badblocks(struct gendisk *disk, sector_t s, > int sectors); > > extern void set_device_ro(struct block_device *bdev, int flag); > extern void set_disk_ro(struct gendisk *disk, int flag); > > _______________________________________________ > Linux-nvdimm mailing list > Linux-nvdimm@lists.01.org > https://lists.01.org/mailman/listinfo/linux-nvdimm
diff --git a/block/genhd.c b/block/genhd.c index b96012849e26..eae2971a6d91 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -506,16 +506,6 @@ static int exact_lock(dev_t devt, void *data) return 0; } -int disk_alloc_badblocks(struct gendisk *disk) -{ - disk->bb = kzalloc(sizeof(*(disk->bb)), GFP_KERNEL); - if (!disk->bb) - return -ENOMEM; - - return badblocks_init(disk->bb, 1); -} -EXPORT_SYMBOL(disk_alloc_badblocks); - static void register_disk(struct gendisk *disk) { struct device *ddev = disk_to_dev(disk); @@ -695,38 +685,6 @@ void del_gendisk(struct gendisk *disk) } EXPORT_SYMBOL(del_gendisk); -/* - * The gendisk usage of badblocks does not track acknowledgements for - * badblocks. We always assume they are acknowledged. - */ -int disk_check_badblocks(struct gendisk *disk, sector_t s, int sectors, - sector_t *first_bad, int *bad_sectors) -{ - if (!disk->bb) - return 0; - - return badblocks_check(disk->bb, s, sectors, first_bad, bad_sectors); -} -EXPORT_SYMBOL(disk_check_badblocks); - -int disk_set_badblocks(struct gendisk *disk, sector_t s, int sectors) -{ - if (!disk->bb) - return 0; - - return badblocks_set(disk->bb, s, sectors, 1); -} -EXPORT_SYMBOL(disk_set_badblocks); - -int disk_clear_badblocks(struct gendisk *disk, sector_t s, int sectors) -{ - if (!disk->bb) - return 0; - - return badblocks_clear(disk->bb, s, sectors); -} -EXPORT_SYMBOL(disk_clear_badblocks); - /* sysfs access to bad-blocks list. */ static ssize_t disk_badblocks_show(struct device *dev, struct device_attribute *attr, diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 34dbcd90a8fd..38b4d5d32581 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -436,11 +436,6 @@ extern void del_gendisk(struct gendisk *gp); extern void del_gendisk_queue(struct gendisk *disk); extern struct gendisk *get_gendisk(dev_t dev, int *partno); extern struct block_device *bdget_disk(struct gendisk *disk, int partno); -int disk_alloc_badblocks(struct gendisk *disk); -extern int disk_check_badblocks(struct gendisk *disk, sector_t s, int sectors, - sector_t *first_bad, int *bad_sectors); -extern int disk_set_badblocks(struct gendisk *disk, sector_t s, int sectors); -extern int disk_clear_badblocks(struct gendisk *disk, sector_t s, int sectors); extern void set_device_ro(struct block_device *bdev, int flag); extern void set_disk_ro(struct gendisk *disk, int flag);
These actions are completely managed by a block driver or can use the badblocks api directly. Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- block/genhd.c | 42 ------------------------------------------ include/linux/genhd.h | 5 ----- 2 files changed, 47 deletions(-)