OSDN Git Service

libnvdimm, pfn: fix nd_pfn_validate() return value handling
authorDan Williams <dan.j.williams@intel.com>
Sun, 13 Dec 2015 19:35:52 +0000 (11:35 -0800)
committerDan Williams <dan.j.williams@intel.com>
Thu, 24 Dec 2015 20:20:19 +0000 (12:20 -0800)
The -ENODEV case indicates that the info-block needs to established.
All other return codes cause nd_pfn_init() to abort.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/pmem.c

index dc68667..ab689bc 100644 (file)
@@ -238,7 +238,9 @@ static int nd_pfn_init(struct nd_pfn *nd_pfn)
 
        nd_pfn->pfn_sb = pfn_sb;
        rc = nd_pfn_validate(nd_pfn);
-       if (rc == 0 || rc == -EBUSY)
+       if (rc == -ENODEV)
+               /* no info block, do init */;
+       else
                return rc;
 
        nd_region = to_nd_region(nd_pfn->dev.parent);