Re: [PATCH 3/3] libnvdimm/pmem: Provide pmem_dax_clear_poison for dax operation
On 11/4/2021 10:55 AM, Christoph Hellwig wrote: > On Tue, Sep 14, 2021 at 05:31:32PM -0600, Jane Chu wrote: >> +static int pmem_dax_clear_poison(struct dax_device *dax_dev, pgoff_t pgoff, >> +size_t nr_pages) >> +{ >> +unsigned int len = PFN_PHYS(nr_pages); >> +sector_t sector = PFN_PHYS(pgoff) >> SECTOR_SHIFT; >> +struct pmem_device *pmem = dax_get_private(dax_dev); >> +phys_addr_t pmem_off = sector * 512 + pmem->data_offset; >> +blk_status_t ret; >> + >> +if (!is_bad_pmem(>bb, sector, len)) >> +return 0; >> + >> +ret = pmem_clear_poison(pmem, pmem_off, len); >> +return (ret == BLK_STS_OK) ? 0 : -EIO; > > No need for the braces here (and I'd prefer a good old if anyway). > > Otherwise looks good: > > Reviewed-by: Christoph Hellwig > Thanks a lot! I'll keep in mind your comments. -jane
Re: [PATCH 3/3] libnvdimm/pmem: Provide pmem_dax_clear_poison for dax operation
On Tue, Sep 14, 2021 at 05:31:32PM -0600, Jane Chu wrote: > +static int pmem_dax_clear_poison(struct dax_device *dax_dev, pgoff_t pgoff, > + size_t nr_pages) > +{ > + unsigned int len = PFN_PHYS(nr_pages); > + sector_t sector = PFN_PHYS(pgoff) >> SECTOR_SHIFT; > + struct pmem_device *pmem = dax_get_private(dax_dev); > + phys_addr_t pmem_off = sector * 512 + pmem->data_offset; > + blk_status_t ret; > + > + if (!is_bad_pmem(>bb, sector, len)) > + return 0; > + > + ret = pmem_clear_poison(pmem, pmem_off, len); > + return (ret == BLK_STS_OK) ? 0 : -EIO; No need for the braces here (and I'd prefer a good old if anyway). Otherwise looks good: Reviewed-by: Christoph Hellwig