Add ddt_object_load() error handling
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 19 Jul 2012 21:50:25 +0000 (14:50 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 20 Jul 2012 17:36:21 +0000 (10:36 -0700)
Add the missing error handling to ddt_object_load().  There's no
good reason this needs to be fatal.  It is preferable that an
error be returned.  This will allow 'zpool import -FX' to safely
attempt to rollback through previous txgs looking for a good one.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
module/zfs/ddt.c

index 7279f1d..18c6cef 100644 (file)
@@ -120,7 +120,9 @@ ddt_object_load(ddt_t *ddt, enum ddt_type type, enum ddt_class class)
        /*
         * Seed the cached statistics.
         */
-       VERIFY(ddt_object_info(ddt, type, class, &doi) == 0);
+       error = ddt_object_info(ddt, type, class, &doi);
+       if (error)
+               return (error);
 
        ddo->ddo_count = ddt_object_count(ddt, type, class);
        ddo->ddo_dspace = doi.doi_physical_blocks_512 << 9;