summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2009-05-24 12:39:38 +0000
committerkib <kib@FreeBSD.org>2009-05-24 12:39:38 +0000
commit862b0fc4e34c231b61d1ab0c8f9abdc98f402ef1 (patch)
treec07ceecfdfbb97e8a579fcf5c97efe22316af3c0 /sys/compat
parentc54d127bf0b5509d9233583ca4d8a8dc0441c38f (diff)
downloadFreeBSD-src-862b0fc4e34c231b61d1ab0c8f9abdc98f402ef1.zip
FreeBSD-src-862b0fc4e34c231b61d1ab0c8f9abdc98f402ef1.tar.gz
The advisory lock may be activated or activated and removed during the
sleep waiting for conditions when the lock may be granted. To prevent lf_setlock() from accessing possibly freed memory, add reference counting to the struct lockf_entry. Bump refcount around the sleep. Make lf_free_lock() return non-zero when structure was freed, and use this after the sleep to return EINTR to the caller. The error code might need a clarification, but we cannot return success to usermode, since the lock is not owned anymore. Reviewed by: dfr Tested by: pho MFC after: 1 month
Diffstat (limited to 'sys/compat')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud