Home
last modified time | relevance | path

Searched refs:badblocks (Results 1 – 23 of 23) sorted by relevance

/linux/include/linux/
H A Dbadblocks.h28 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 Dnd.h124 struct badblocks bb;
/linux/block/
H A Dbadblocks.c457 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 Dgenhd.c1173 static DEVICE_ATTR(badblocks, 0644, disk_badblocks_show, disk_badblocks_store);
/linux/drivers/nvdimm/
H A Dbadrange.c165 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 Dbtt.h199 struct badblocks;
232 struct badblocks *phys_bb;
H A Dnd.h421 struct badblocks bb;
657 struct badblocks *bb, const struct range *range);
674 static inline bool is_bad_pmem(struct badblocks *bb, sector_t sector, in is_bad_pmem()
H A Dregion_devs.c590 static DEVICE_ATTR(badblocks, 0444, region_badblocks_show, NULL);
/linux/drivers/mtd/
H A Dmtdconcat.c624 mtd->ecc_stats.badblocks++; in concat_block_markbad()
702 concat->mtd.ecc_stats.badblocks = subdev[0]->ecc_stats.badblocks; in mtd_concat_create()
733 concat->mtd.ecc_stats.badblocks += in mtd_concat_create()
734 subdev[i]->ecc_stats.badblocks; in mtd_concat_create()
H A Dmtdpart.c213 child->ecc_stats.badblocks++; in allocate_partition()
/linux/drivers/block/null_blk/
H A Dmain.c529 return badblocks_show(&t_dev->badblocks, page, 0); in nullb_device_badblocks_show()
563 cmpxchg(&t_dev->badblocks.shift, -1, 0); in nullb_device_badblocks_store()
565 if (badblocks_set(&t_dev->badblocks, start, in nullb_device_badblocks_store()
568 } else if (badblocks_clear(&t_dev->badblocks, start, in nullb_device_badblocks_store()
576 CONFIGFS_ATTR(nullb_device_, badblocks);
793 if (badblocks_init(&dev->badblocks, 0)) { in null_alloc_dev()
840 badblocks_exit(&dev->badblocks); in null_free_dev()
1349 struct badblocks *bb = &cmd->nq->dev->badblocks; in null_handle_badblocks()
1430 if (dev->badblocks.shift != -1) in null_process_cmd()
H A Dzoned.c416 if (dev->badblocks.shift != -1) { in null_zone_write()
/linux/drivers/md/
H A Dmd.c1081 badblocks_exit(&rdev->badblocks); in md_rdev_clear()
1401 rdev->badblocks.shift = -1; in super_90_load()
1892 rdev->badblocks.count == 0) { in super_1_load()
1911 rdev->badblocks.shift = sb->bblog_shift; in super_1_load()
1920 if (!badblocks_set(&rdev->badblocks, sector, count, 1)) in super_1_load()
1924 rdev->badblocks.shift = 0; in super_1_load()
2272 if (rdev->badblocks.count == 0) in super_1_sync()
2278 struct badblocks *bb = &rdev->badblocks; in super_1_sync()
2455 if (rdev->badblocks.sector + rdev->badblocks.size > new_offset) in super_1_allow_new_offset()
2664 rdev->badblocks.count = 0; in md_kick_rdev_from_array()
[all …]
H A Draid1.c2502 if (rdev->badblocks.shift < 0) in narrow_write_error()
2505 block_sectors = roundup(1 << rdev->badblocks.shift, lbs); in narrow_write_error()
H A Draid10.c2790 if (rdev->badblocks.shift < 0) in narrow_write_error()
2793 block_sectors = roundup(1 << rdev->badblocks.shift, lbs); in narrow_write_error()
/linux/include/uapi/mtd/
H A Dmtd-abi.h308 __u32 badblocks; member
/linux/drivers/mtd/nand/onenand/
H A Donenand_bbt.c106 mtd->ecc_stats.badblocks++; in create_bbt()
/linux/drivers/mtd/nand/raw/
H A Dnandsim.c90 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 Dnand_bbt.c239 mtd->ecc_stats.badblocks++; in read_bbt()
529 mtd->ecc_stats.badblocks++; in create_bbt()
H A Dnand_base.c597 mtd->ecc_stats.badblocks++; in nand_block_markbad_lowlevel()
/linux/fs/hpfs/
H A Dhpfs.h91 __le32 badblocks; /* bad block list */ member
/linux/Documentation/admin-guide/device-mapper/
H A Ddm-dust.rst202 dust_clear_badblocks: badblocks cleared
207 dust_clear_badblocks: no badblocks found
/linux/Documentation/ABI/testing/
H A Dsysfs-bus-nfit191 badblocks lists.