On Wed, Sep 22, 2021 at 6:09 PM Darrick J. Wong <djwong@xxxxxxxxxx> wrote: > > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > It's totally silly that the dax zero_page_range implementations are > required to accept a page count, but one of the four implementations > silently ignores the page count and the wrapper itself errors out if you > try to do more than one page. > > Fix the nvdimm implementation to loop over the page count and remove the > artificial limitation. > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > --- > drivers/dax/super.c | 7 ------- > drivers/nvdimm/pmem.c | 14 +++++++++++--- > 2 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/drivers/dax/super.c b/drivers/dax/super.c > index fc89e91beea7..ca61a01f9ccd 100644 > --- a/drivers/dax/super.c > +++ b/drivers/dax/super.c > @@ -353,13 +353,6 @@ int dax_zero_page_range(struct dax_device *dax_dev, pgoff_t pgoff, > { > if (!dax_alive(dax_dev)) > return -ENXIO; > - /* > - * There are no callers that want to zero more than one page as of now. > - * Once users are there, this check can be removed after the > - * device mapper code has been updated to split ranges across targets. > - */ It's device-mapper that's the issue, you need to make sure that every device-mapper zero_page_range implementation knows how to route a multi-page operation. This is part of the motivation to drop that support and move simple concatenation and striping into the PMEM driver directly.