| /linux/include/linux/ |
| H A D | badblocks.h | 28 struct badblocks { struct 51 int badblocks_check(struct badblocks *bb, sector_t s, sector_t sectors, argument 53 bool badblocks_set(struct badblocks *bb, sector_t s, sector_t sectors, 55 bool badblocks_clear(struct badblocks *bb, sector_t s, sector_t sectors); 56 void ack_all_badblocks(struct badblocks *bb); 57 ssize_t badblocks_show(struct badblocks *bb, char *page, int unack); 58 ssize_t badblocks_store(struct badblocks *bb, const char *page, size_t len, 60 int badblocks_init(struct badblocks *bb, int enable); 61 void badblocks_exit(struct badblocks *bb); 63 int devm_init_badblocks(struct device *dev, struct badblocks *bb); [all …]
|
| H A D | nd.h | 124 struct badblocks bb;
|
| H A D | blkdev.h | 110 struct badblocks; 218 struct badblocks *bb;
|
| /linux/block/ |
| H A D | badblocks.c | 457 static int prev_by_hint(struct badblocks *bb, sector_t s, int hint) in prev_by_hint() 481 static int prev_badblocks(struct badblocks *bb, struct badblocks_context *bad, in prev_badblocks() 534 static bool can_merge_front(struct badblocks *bb, int prev, in can_merge_front() 552 static int front_merge(struct badblocks *bb, int prev, struct badblocks_context *bad) in front_merge() 588 static bool can_combine_front(struct badblocks *bb, int prev, in can_combine_front() 609 static void front_combine(struct badblocks *bb, int prev) in front_combine() 626 static bool overlap_front(struct badblocks *bb, int front, in overlap_front() 641 static bool overlap_behind(struct badblocks *bb, struct badblocks_context *bad, in overlap_behind() 673 static bool can_front_overwrite(struct badblocks *bb, int prev, in can_front_overwrite() 716 static int front_overwrite(struct badblocks *bb, int prev, in front_overwrite() [all …]
|
| H A D | genhd.c | 1170 static DEVICE_ATTR(badblocks, 0644, disk_badblocks_show, disk_badblocks_store);
|
| /linux/drivers/nvdimm/ |
| H A D | badrange.c | 165 static void set_badblock(struct badblocks *bb, sector_t s, int num) in set_badblock() 185 static void __add_badblock_range(struct badblocks *bb, u64 ns_offset, u64 len) in __add_badblock_range() 214 struct badblocks *bb, const struct range *range) in badblocks_populate() 270 struct badblocks *bb, const struct range *range) in nvdimm_badblocks_populate()
|
| H A D | btt.h | 199 struct badblocks; 232 struct badblocks *phys_bb;
|
| H A D | pmem.c | 264 struct badblocks *bb = &pmem->bb; in __pmem_direct_access() 691 struct badblocks *bb; in pmem_revalidate_poison()
|
| H A D | region_devs.c | 592 static DEVICE_ATTR(badblocks, 0444, region_badblocks_show, NULL);
|
| /linux/drivers/md/ |
| H A D | md.h | 218 struct badblocks badblocks; member 302 if (unlikely(rdev->badblocks.count)) { in is_badblock() 303 int rv = badblocks_check(&rdev->badblocks, rdev->data_offset + s, in is_badblock()
|
| H A D | md.c | 1088 badblocks_exit(&rdev->badblocks); in md_rdev_clear() 1408 rdev->badblocks.shift = -1; in super_90_load() 1899 rdev->badblocks.count == 0) { in super_1_load() 1925 rdev->badblocks.shift = sb->bblog_shift; in super_1_load() 1934 if (!badblocks_set(&rdev->badblocks, sector, count, 1)) in super_1_load() 1938 rdev->badblocks.shift = 0; in super_1_load() 2286 if (rdev->badblocks.count == 0) in super_1_sync() 2292 struct badblocks *bb = &rdev->badblocks; in super_1_sync() 2469 if (rdev->badblocks.sector + rdev->badblocks.size > new_offset) in super_1_allow_new_offset() 2678 rdev->badblocks.count = 0; in md_kick_rdev_from_array() [all …]
|
| H A D | raid1.c | 2483 if (rdev->badblocks.shift < 0) in narrow_write_error() 2486 block_sectors = roundup(1 << rdev->badblocks.shift, lbs); in narrow_write_error()
|
| H A D | raid10.c | 2783 if (rdev->badblocks.shift < 0) in narrow_write_error() 2786 block_sectors = roundup(1 << rdev->badblocks.shift, lbs); in narrow_write_error()
|
| /linux/drivers/block/null_blk/ |
| H A D | main.c | 537 return badblocks_show(&t_dev->badblocks, page, 0); in nullb_device_badblocks_show() 571 cmpxchg(&t_dev->badblocks.shift, -1, 0); in nullb_device_badblocks_store() 573 if (badblocks_set(&t_dev->badblocks, start, in nullb_device_badblocks_store() 576 } else if (badblocks_clear(&t_dev->badblocks, start, in nullb_device_badblocks_store() 584 CONFIGFS_ATTR(nullb_device_, badblocks); 802 if (badblocks_init(&dev->badblocks, 0)) { in null_alloc_dev() 848 badblocks_exit(&dev->badblocks); in null_free_dev() 1357 struct badblocks *bb = &cmd->nq->dev->badblocks; in null_handle_badblocks() 1438 if (dev->badblocks.shift != -1) in null_process_cmd()
|
| H A D | zoned.c | 422 if (dev->badblocks.shift != -1) { in null_zone_write()
|
| /linux/include/uapi/mtd/ |
| H A D | mtd-abi.h | 308 __u32 badblocks; member
|
| /linux/drivers/mtd/nand/onenand/ |
| H A D | onenand_bbt.c | 106 mtd->ecc_stats.badblocks++; in create_bbt()
|
| /linux/fs/hpfs/ |
| H A D | hpfs.h | 91 __le32 badblocks; /* bad block list */ member
|
| /linux/Documentation/admin-guide/device-mapper/ |
| H A D | dm-dust.rst | 202 dust_clear_badblocks: badblocks cleared 207 dust_clear_badblocks: no badblocks found
|
| /linux/drivers/mtd/nand/raw/ |
| H A D | nandsim.c | 90 static char *badblocks = NULL; variable 122 module_param(badblocks, charp, 0400); 148 MODULE_PARM_DESC(badblocks, "Erase blocks that are initially marked bad, separated by commas"); 808 if (!badblocks) in ns_parse_badblocks() 810 w = badblocks; in ns_parse_badblocks()
|
| H A D | nand_bbt.c | 239 mtd->ecc_stats.badblocks++; in read_bbt() 529 mtd->ecc_stats.badblocks++; in create_bbt()
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-bus-nfit | 191 badblocks lists.
|
| /linux/drivers/mtd/ |
| H A D | mtdcore.c | 338 return sysfs_emit(buf, "%u\n", ecc_stats->badblocks); in mtd_bad_blocks_show() 2450 mtd->ecc_stats.badblocks++; in mtd_block_markbad()
|