On Tue, Jun 30, 2026 at 05:18:41PM -0400, Gregory Price wrote: > There is no atomic mechanism to offline and remove an entire > multi-block DAX kmem device. This is presently done in two steps:
... snip snip snip ... Sashiko pointed out a false-positive, but adding a fixup patch here that adds additional consistency. On total failure - release all resources. This makes the sysfs interface consistent with the probe failure path. Just attaching a fixup here, since technically it's not a bug, could fold in separately ~Gregory
>From e341860c83fd5d5e8549d8adbf71a484c8990c5f Mon Sep 17 00:00:00 2001 From: Gregory Price <[email protected]> Date: Tue, 30 Jun 2026 14:49:06 -0700 Subject: [PATCH] fixup! dax/kmem: add sysfs interface for atomic whole-device hotplug --- drivers/dax/kmem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c index 19effe0da3dc..f597d8a99c1f 100644 --- a/drivers/dax/kmem.c +++ b/drivers/dax/kmem.c @@ -380,8 +380,11 @@ static ssize_t state_store(struct device *dev, struct device_attribute *attr, return rc; rc = dax_kmem_do_hotplug(dev_dax, data, online_type); - if (rc < 0) + if (rc < 0) { + /* Total failure, drop the reservations we took. */ + dax_kmem_cleanup_resources(dev_dax, data); return rc; + } data->state = online_type; return len; -- 2.53.0-Meta

