[PATCH v3 00/10] libnvdimm, pmem: handle media errors

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

 



Changes since v2: [1]

1/ Statically allocate the badblocks list in struct pmem_device, to support
   dynamically establishing the first badblocks entry via sysfs. (Vishal)

2/ Fix pmem_rw_page() to skip page_endio() on error (Vishal)

3/ Replace devm_alloc_badblocks() with devm_init_badblocks().  The
   expectation is that a driver that wants to use badblocks handles the
   base allocation internally.

4/ Simplify nvdimm_namespace_add_poison() and __add_badblock_range().

[1]: https://lists.01.org/pipermail/linux-nvdimm/2016-January/003901.html

---

Following the enabling to retrieve a platform provided list of nvdimm
media errors [2], implement error handling in the pmem i/o paths.  This
adds the following capabilities:

    1/ Consult badblocks in the pmem_make_request() path to fail block
       layer requests to platform advertised bad address ranges.

    2/ Consult badblocks in the nvdimm_read_bytes() path to communicate
       errors for namespace metadata reads and btt data reads.

[2]: https://lists.01.org/pipermail/linux-nvdimm/2015-December/003706.html

---

Dan Williams (10):
      libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h
      badblocks: rename badblocks_free to badblocks_exit
      block: clarify badblocks lifetime
      block, badblocks: introduce devm_init_badblocks
      libnvdimm: don't fail init for full badblocks list
      libnvdimm: convert to statically allocated badblocks
      pmem: fail io-requests to known bad blocks
      pmem, dax: disable dax in the presence of bad blocks
      libnvdimm, pmem: nvdimm_read_bytes() badblocks support
      block: kill disk_{check|set|clear|alloc}_badblocks


 block/badblocks.c         |   56 ++++++++++++++++++++++++++----------
 block/genhd.c             |   47 ------------------------------
 block/ioctl.c             |   10 ++++++
 drivers/md/md.c           |    2 +
 drivers/nvdimm/core.c     |   64 +++++++++++++++--------------------------
 drivers/nvdimm/nd-core.h  |    2 -
 drivers/nvdimm/nd.h       |    2 +
 drivers/nvdimm/pmem.c     |   70 +++++++++++++++++++++++++++++++++++----------
 include/linux/badblocks.h |   16 +++++++++-
 include/linux/genhd.h     |    5 ---
 10 files changed, 145 insertions(+), 129 deletions(-)
--
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