graid3: Fix teardown in g_raid3_try_destroy()

Commit 33cb9b3c3a22 replaced a g_raid3_destroy_device() call with a
g_raid3_free_device() call, which was incorrect and could lead to a
panic if a RAID3 GEOM failed to start (e.g., due to missing disks).

Reported by:	graid3 tests
Fixes:		33cb9b3c3a22 ("graid3: Fix teardown races")
MFC after:	3 days
Sponsored by:	Klara, Inc.

(cherry picked from commit 955f213fa2f14d5b5e9b655d8922e28315eb9fa3)
This commit is contained in:
Mark Johnston 2024-04-20 12:02:06 -04:00
parent 21d1f73f88
commit 692106afb8

View file

@ -2033,7 +2033,7 @@ g_raid3_try_destroy(struct g_raid3_softc *sc)
sc->sc_worker = NULL;
} else {
g_topology_unlock();
g_raid3_free_device(sc);
g_raid3_destroy_device(sc);
}
return (1);
}