Lines Matching defs:proxy
59 * So this implementation uses reference counts and proxy range locks.
60 * Firstly, only reader locks use reference counts and proxy locks,
62 * When a reader lock overlaps with another then a proxy lock is created
64 * is exact then the reference count of the proxy is simply incremented.
65 * Otherwise, the proxy lock is split into smaller lock ranges and
66 * new proxy locks created for non overlapping ranges.
187 * If this is an original (non-proxy) lock then replace it by
188 * a proxy and return the proxy.
193 rl_t *proxy;
196 return (rl); /* already a proxy */
204 /* create a proxy range lock */
205 proxy = kmem_alloc(sizeof (rl_t), KM_SLEEP);
206 proxy->r_off = rl->r_off;
207 proxy->r_len = rl->r_len;
208 proxy->r_cnt = 1;
209 proxy->r_type = RL_READER;
210 proxy->r_proxy = B_TRUE;
211 proxy->r_write_wanted = B_FALSE;
212 proxy->r_read_wanted = B_FALSE;
213 avl_add(tree, proxy);
215 return (proxy);
220 * returning the *front* proxy.
233 /* create the rear proxy range lock */
251 * Create and add a new proxy range lock for the supplied range.
289 * convert to proxy if needed then
310 /* Add a proxy for initial range before the overlap */
317 * of the new range. For each entry we make it a proxy if it
319 * gaps between the ranges then we create a new proxy range.
491 * Find start proxy representing this reader lock,