]> git.proxmox.com Git - mirror_zfs-debian.git/commitdiff
Add load_nvlist() error handling
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 30 Nov 2012 19:23:38 +0000 (11:23 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 30 Nov 2012 21:48:17 +0000 (13:48 -0800)
Add the missing error handling to load_nvlist().  There's no good
reason this needs to be fatal.  All callers of load_nvlist() do
correctly handle an error condition and 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>
Closes #1120

module/zfs/spa.c

index 33798d3aff5fdee9d196484de4e4f8b7c7ac645b..b610a0dae6bfd640dd479bba7f49b41eefb63173 100644 (file)
@@ -1350,7 +1350,10 @@ load_nvlist(spa_t *spa, uint64_t obj, nvlist_t **value)
        int error;
        *value = NULL;
 
-       VERIFY(0 == dmu_bonus_hold(spa->spa_meta_objset, obj, FTAG, &db));
+       error = dmu_bonus_hold(spa->spa_meta_objset, obj, FTAG, &db);
+       if (error)
+               return (error);
+
        nvsize = *(uint64_t *)db->db_data;
        dmu_buf_rele(db, FTAG);