vn - remove vn_softc from list on detach command
authorAlex Hornung <ahornung@gmail.com>
Sat, 26 Jun 2010 16:09:57 +0000 (17:09 +0100)
committerAlex Hornung <ahornung@gmail.com>
Sun, 27 Jun 2010 01:05:25 +0000 (02:05 +0100)
* Remove the vn_softc out of the vn list when a detach command is
  issued, additionally to calling disk_destroy().

* This was causing a panic when a reboot was issued after detaching a vn
  device, as disk_destroy was effectively called twice on the same dp.

sys/dev/disk/vn/vn.c

index 95bcf44..4cf0a19 100644 (file)
@@ -476,6 +476,7 @@ vnioctl(struct dev_ioctl_args *ap)
                if (dkunit(dev) >= VN_PREALLOCATED_UNITS) {
                        devfs_clone_bitmap_put(&DEVFS_CLONE_BITMAP(vn), dkunit(dev));
                        disk_destroy(&vn->sc_disk);
+                       SLIST_REMOVE(&vn_list, vn, vn_softc, sc_list);
                }
 
                break;