diff options
author | Grigoriy Orlov <gluk@cvs.openbsd.org> | 2001-06-20 23:23:15 +0000 |
---|---|---|
committer | Grigoriy Orlov <gluk@cvs.openbsd.org> | 2001-06-20 23:23:15 +0000 |
commit | bf3dda9a4a215ab111a7688acf2488b033d2633f (patch) | |
tree | a76e2cfbbc30907c6aba85128eca85c968098ddb /sys/compat/linux/linux_termios.c | |
parent | d56eede64774d87e208c1a59f08b1e556c8d5202 (diff) |
Fix PR1826. tsleep in lf_setlock can return 0 if process was ptrace'd,
but not wakeup'ed. In this case one entry can be placed twice at list of
blocked locks. As a result block list contain an entry which points to
itself. lf_wakelock can't remove such an entry and system livelocks
trying to remove a bad entry from block list.
Other changes include:
- repair debug functions and make vfs_lockf.c compilable with LOCKF_DEBUG
- simplify debug printing and remove useless debugging
- remove unnecessary casting, replace NOLOCKF with NULL
- free -> FREE (use one form over the file)
- convert list of blocked locks to use TAILQ_* macroses
- lf_addblock() -> TAILQ_INSERT_TAIL
- Fix bug in lf_findoverlap(): in old code
if (end == -1) && (lf->lf_end == -1) && (lf->lf_start <= start)
then lf_findoverlap() return 4 instead of 2
- work more carefully with pointers (probably fix one or two bugs)
- use wakeup_one()
- KNF
Diffstat (limited to 'sys/compat/linux/linux_termios.c')
0 files changed, 0 insertions, 0 deletions