On Fri, 13 Jul 2001 04:25:04 -0500,
  Alfred Perlstein <[EMAIL PROTECTED]> said:

Alfred> This is just about completely file locking related,
Alfred> however I do have a question about PGRP locking, in
Alfred> a certain part you may have to lock two pgrps, how do you
Alfred> deal with deadlock?

Lock the session to which the pgrps belong first, then lock the pgrps.

AFAIK, there are only two places to lock two pgrps, namely enterpgrp()
and fixjobc() with an argument 'entering' set to nonzero. In both
cases, either the pgrps belong to the same session or one of the pgrps
belongs to a brand-new session with no other pgrps.


Alfred> getvnode()
Alfred> should FHOLD returned fp.

Alfred> ibcs2_getdents(), ibcs2_statfs(), __acl_get_fd, __acl_set_fd,
Alfred> __acl_aclcheck_fd(), __acl_delete_fd()
Alfred>  depends on getvnode doing FHOLD, once done needs fdrop() added

Aaugh, I finished that work two hours ago :)


Alfred> getvnode()
Alfred> should actually be turned into "holdvnode" (implicit VREF) to do
Alfred> reference holding. (later)

Fine.


Alfred> Certain operations, such as:
Alfred>   kq = (struct kqueue *)fp->f_data;
Alfred> should not really require that the file be locked, it's implicitly frozen
Alfred> at creation time (i think)

Yes.

-- 
Seigo Tanimura <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to