Re: [PATCH v2 9/9] block: kill disk_{check|set|clear|alloc}_badblocks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
> ---
>  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@xxxxxxxxxxxx
> https://lists.01.org/mailman/listinfo/linux-nvdimm
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux