On Wed, Nov 27, 2002 at 11:37:17AM +0000, Ian Dowse wrote the words in effect of: > In message <[EMAIL PROTECTED]>, Bruce Evans writes: > >On Wed, 27 Nov 2002, Ian Dowse wrote: > >> I think moving the line > >> > >> tsleep(sc, PRIBIO, "mdwait", 0); > >> > >> to just after the following `if' statement may do the trick. If the > > > >Wouldn't Giant locking prevent races here? There is no locking in > >sight for the ioctl, but ioctl() holds Giant. > > Yes, but mddestroy() assumes that the kthread is waiting in the > "mdwait" tsleep() when it calls wakeup(). That won't be true if the > kthread has not yet had a chance to run, or if it is waiting to > acquire Giant before entering the main loop (or if anything it calls > drops Giant). Moving the check of the MD_SHUTDOWN to before the > tsleep should catch all of these cases, and Giant ensures that the > wakeup() does not occur after the flag is tested but before the > tsleep(). >
Is anyone planning to take this task, because, I think its important that it is fixed. Or should it be put on the 5.0-todo list? If not, we should put it in the BUGS section of mdconfig/ or the md(4) manual page. IMO. -- Hiten Pandya ([EMAIL PROTECTED], [EMAIL PROTECTED]) http://www.unixdaemons.com/~hiten/ To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message