Re: [PATCH] dax: fix mapping_store() returning 0 instead of error code

From: Alison Schofield

Date: Mon Oct 12 2026 - 19:23:23 EST


On Sun, Oct 11, 2026 at 09:18:57PM +0800, jianyungao89@xxxxxxxxx wrote:
> From: Jianyun Gao <jianyungao89@xxxxxxxxx>
>
> When the region driver is not loaded, mapping_store() returns rc
> which is 0 at that point, instead of an error code. Set it to
> -ENXIO to match the equivalent check in size_store().


Hi Jianyun,

The change looks correct, but there is another path in mapping_store() with
the same problem. When alloc_is_aligned() fails, rc is still zero, so the
sysfs write reports success without allocating the requested range.

Muchun Song already posted a patch addressing both cases.
https://lore.kernel.org/nvdimm/20260924025035.1265035-1-songmuchun@xxxxxxxxxxxxx/

Please take a look and add your reviewed-by tag to Muchun's patchset
or comment if it doesn't meet your needs.

-- Alison

>
> Fixes: 9567da0b408a ("device-dax: Introduce bus + driver model")
> Signed-off-by: Jianyun Gao <jianyungao89@xxxxxxxxx>
> ---
> drivers/dax/bus.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
> index b809e1a264af..262f97b5e7aa 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -1192,7 +1192,7 @@ static ssize_t mapping_store(struct device *dev, struct device_attribute *attr,
> return rc;
> if (!dax_region->dev->driver) {
> up_write(&dax_region_rwsem);
> - return rc;
> + return -ENXIO;
> }
> rc = down_write_killable(&dax_dev_rwsem);
> if (rc) {
> --
> 2.34.1
>