Discussion:
bug in lis_stropen?
e***@netscape.net
2005-12-11 02:50:10 UTC
Permalink
Hello,

Question about particular code in LiS-2.18.

In lis_stropen() function the following 2 lines:

if ((err = lis_set_q_sync(head->sd_wq, LIS_QLOCK_QUEUE)) == 0)
err = lis_set_q_sync(head->sd_wq->q_next, LIS_DEVST(maj).f_qlock_option) ;

The f_qlock_option passed to lis_set_q_sync() in 2nd line can be -1.
In fact it is -1.

The lis_set_q_sync() will do nasty thing if -1 is passed to it.
It will just free existing queue lock and return.

I also have doubts that it is a good thing to manipulate with queue lock
of the q_next queue without freezing that q_next queue somehow.
[What if it is queuerun'ed at the moment?]

The question is: what would be a good fix for that 2nd call with f_qlock_option parameter?

Guess I should check f_qlock_option and if it is -1 then what?

Skip that lis_set_q_sync() call or call it with LIS_QLOCK_QUEUE instead?

--
Eugene


___________________________________________________
Try the New Netscape Mail Today!
Virtually Spam-Free | More Storage | Import Your Contact List
http://mail.netscape.com

Loading...