Dag-Erling Smørgrav <d...@des.no> writes: > "M. Warner Losh" <i...@bsdimp.com> writes: >> Maybe the real problem is that devd locks the file, then dies. The >> file remains locked, so the flopen is failing with EWOULDBLOCK. > > The lock is released when the process that holds it terminates. > >> But I suspect the real real problem is the implicit assumption that >> flock will release the lock when a process terminates... That isn't >> the case in BSD > Yes it is.
Additional details: - Under POSIX semantics (fcntl(2) locks), the lock is released when *any* file descriptor the process holds for that file is closed. This is handled in fdfree(). - Under flock semantics (flock(2) locks), the lock is released when *all* file descriptors the process holds for that file is closed. This is handled in vn_closefile(). - In both cases, all locks a process holds are released when the process terminates. Gotta love the following excerpt from VOP_OPEN(9), btw: The VOP_OPEN() entry point is called before a file is accessed by a process and the VOP_CLOSE() entry point is called after a file is fin‐ ished with by the process. :) DES -- Dag-Erling Smørgrav - d...@des.no _______________________________________________ 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"