On Tue, Jun 26, 2012 at 19:41:07 -0400, Benjamin Kaduk wrote:
> On Tue, 26 Jun 2012, Michael Butler wrote:
> 
> >As follows, in "g_disk_providergone", a NULL pointer reference?:
> 
> g_disk_providergone() is new in r237518 (by ken); ken cc'd.

Can you try the attached patch to sys/geom/geom_disk.c?

Also, do you have full dmesg information for when the panic happened?

It looks like disk_destroy() has already been called in this case, and I
suppose that's likely to happen for any of the users of the GEOM disk class
that haven't been updated with the reference count changes I made in da(4).
(i.e. all of the rest of them.)

Let me know whether this works for you.

Thanks,

Ken
-- 
Kenneth Merry
k...@freebsd.org
==== //depot/users/kenm/FreeBSD-test2/sys/geom/geom_disk.c#7 - 
/usr/home/kenm/perforce4/kenm/FreeBSD-test2/sys/geom/geom_disk.c ====
*** /tmp/tmp.75357.20   Tue Jun 26 20:25:44 2012
--- /usr/home/kenm/perforce4/kenm/FreeBSD-test2/sys/geom/geom_disk.c    Tue Jun 
26 20:25:29 2012
***************
*** 502,507 ****
--- 502,515 ----
        struct g_disk_softc *sc;
  
        sc = (struct g_disk_softc *)pp->geom->softc;
+ 
+       /*
+        * If the softc is already NULL, then we've probably been through
+        * g_disk_destroy already; there is nothing for us to do anyway.
+        */
+       if (sc == NULL)
+               return;
+ 
        dp = sc->dp;
  
        if (dp->d_gone != NULL)
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to