* Return non-zero if lock 'x' is blocked by lock 'y' (or vice versa). */
| 856 | * Return non-zero if lock 'x' is blocked by lock 'y' (or vice versa). |
| 857 | */ |
| 858 | static int |
| 859 | lf_blocks(struct lockf_entry *x, struct lockf_entry *y) |
| 860 | { |
| 861 | |
| 862 | return x->lf_owner != y->lf_owner |
| 863 | && (x->lf_type == F_WRLCK || y->lf_type == F_WRLCK) |
| 864 | && lf_overlaps(x, y); |
| 865 | } |
| 866 | |
| 867 | /* |
| 868 | * Allocate a lock edge from the free list |
no test coverage detected