diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-04-08 04:59:27 +0200 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-04-08 04:59:27 +0200 |
commit | e5670563f588ed1c0603819350c0f02cec23f5c5 (patch) | |
tree | a90e60642e6658cc6fef630d2ee8bec39b1bcbee | |
parent | libnvdimm: fix smart data retrieval (diff) | |
download | linux-e5670563f588ed1c0603819350c0f02cec23f5c5.tar.xz linux-e5670563f588ed1c0603819350c0f02cec23f5c5.zip |
libnvdimm, pfn: fix uuid validation
If we detect a namespace has a stale info block in the init path, we
should overwrite with the latest configuration. In fact, we already
return -ENODEV when the parent uuid is invalid, the same should be done
for the 'self' uuid. Otherwise we can get into a condition where
userspace is unable to reconfigure the pfn-device without directly /
manually invalidating the info block.
Cc: <stable@vger.kernel.org>
Reported-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | drivers/nvdimm/pfn_devs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c index 254d3bc13f70..e071e214feba 100644 --- a/drivers/nvdimm/pfn_devs.c +++ b/drivers/nvdimm/pfn_devs.c @@ -376,7 +376,7 @@ int nd_pfn_validate(struct nd_pfn *nd_pfn) } else { /* from init we validate */ if (memcmp(nd_pfn->uuid, pfn_sb->uuid, 16) != 0) - return -EINVAL; + return -ENODEV; } if (nd_pfn->align > nvdimm_namespace_capacity(ndns)) { |