HEADS UP: destroy_dev_sched() KPI in the tree
Kostik Belousov
kostikbel at gmail.com
Sun Jul 8 02:48:29 UTC 2007
On Sun, Jul 08, 2007 at 09:47:41AM +0800, Tai-hwa Liang wrote:
> On Sat, 7 Jul 2007, Kostik Belousov wrote:
> >On Sat, Jul 07, 2007 at 08:36:23PM +0800, Jiawei Ye wrote:
> >>On 7/5/07, Kostik Belousov <kostikbel at gmail.com> wrote:
> >>>
> >>>Today, I reverted the part of commit that tried to transform
> >>>destroy_dev()
> >>>from d_close() into destroy_dev_sched(). See kern_conf.c, rev. 1.208.
> >>>You shall call destroy_dev_sched() explicitely.
> >>>
> >>>
> >>Does this mean that mount_smbfs has to explicitly call it now? It is
> >>currently stuck in the devdrn state with the latest kernel :(
> >>
> >>Jiawei Ye
> >Exactly. Patch by Tai-hwa Liang is pending. I also remember that sg(4)
>
> I'll ask for re@'s approval tomorrow. Hopefully the new KPI would have
> more exposure before my patch is committed.
>
> >had the same problem, but I do not know it current status.
>
> Though it was reviewed before destroy_dev_sched() KPI enters to the tree,
> I'd be appreciate it if you can reviewed the attached patch again.
So, this is still the problem for scsi_targ ?
It probably make sense to postpone free of softc until all threads
finished using it. You may use destroy_dev_sched_cb() to run the
function after the device is actually destroyed. It would just call
free().
>
> --
> Cheers,
>
> Tai-hwa Liang
> --- cam/scsi/scsi_target.c.orig Wed May 2 11:42:46 2007
> +++ cam/scsi/scsi_target.c Wed May 2 11:43:11 2007
> @@ -210,7 +210,7 @@ targclose(struct cdev *dev, int flag, in
> softc = (struct targ_softc *)dev->si_drv1;
> if ((softc->periph == NULL) ||
> (softc->state & TARG_STATE_LUN_ENABLED) == 0) {
> - destroy_dev(dev);
> + destroy_dev_sched(dev);
> FREE(softc, M_TARG);
> return (0);
> }
> @@ -229,7 +229,7 @@ targclose(struct cdev *dev, int flag, in
> cam_periph_invalidate(softc->periph);
> softc->periph = NULL;
> }
> - destroy_dev(dev);
> + destroy_dev_sched(dev);
> FREE(softc, M_TARG);
> }
> cam_periph_unlock(periph);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070708/b1bea668/attachment.pgp
More information about the freebsd-current
mailing list