| 334 | } |
| 335 | |
| 336 | static struct lockf_entry * |
| 337 | lf_alloc_lock(struct lock_owner *lo) |
| 338 | { |
| 339 | struct lockf_entry *lf; |
| 340 | |
| 341 | lf = malloc(sizeof(struct lockf_entry), M_LOCKF, M_WAITOK|M_ZERO); |
| 342 | |
| 343 | #ifdef LOCKF_DEBUG |
| 344 | if (lockf_debug & 4) |
| 345 | printf("Allocated lock %p\n", lf); |
| 346 | #endif |
| 347 | if (lo) { |
| 348 | sx_xlock(&lf_lock_owners[lo->lo_hash].lock); |
| 349 | lo->lo_refs++; |
| 350 | sx_xunlock(&lf_lock_owners[lo->lo_hash].lock); |
| 351 | lf->lf_owner = lo; |
| 352 | } |
| 353 | |
| 354 | return (lf); |
| 355 | } |
| 356 | |
| 357 | static int |
| 358 | lf_free_lock(struct lockf_entry *lock) |
no test coverage detected