]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
libnvdimm, pfn: fix uuid validation
authorDan Williams <dan.j.williams@intel.com>
Fri, 8 Apr 2016 02:59:27 +0000 (19:59 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Apr 2016 06:45:08 +0000 (15:45 +0900)
commit e5670563f588ed1c0603819350c0f02cec23f5c5 upstream.

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.

Reported-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvdimm/pfn_devs.c

index ae81a2f1da50b1e9f9cf5a14bd180df19b3ccab1..f0b56b3aac4d625d2ef2019d014d1f2f50d804c1 100644 (file)
@@ -315,7 +315,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)) {