Lines Matching refs:cip
385 struct indir *cip; in s_read() local
392 for (cip = ip; cip != NULL;) { in s_read()
393 if (cip->shift) { in s_read()
394 idx = (offset >> cip->shift) & NMASK; in s_read()
395 up = cip->array[idx]; in s_read()
396 cip = (struct indir *)up; in s_read()
400 return (cip->array[idx]); in s_read()
412 struct indir *cip, *lip[10]; in s_write() local
420 cip = ip; in s_write()
422 lip[li++] = cip; in s_write()
423 if (cip->shift) { in s_write()
424 idx = (offset >> cip->shift) & NMASK; in s_write()
425 up = cip->array[idx]; in s_write()
427 cip = (struct indir *)up; in s_write()
431 cip->array[idx] = in s_write()
432 (uintptr_t)new_indir(cip->shift - nshift); in s_write()
433 if (cip->array[idx] == 0) in s_write()
435 cip->used++; in s_write()
436 up = cip->array[idx]; in s_write()
437 cip = (struct indir *)up; in s_write()
442 up = cip->array[idx]; in s_write()
444 cip->used--; in s_write()
445 cip->array[idx] = ptr; in s_write()
447 cip->used++; in s_write()
450 if (cip->used != 0 || li == 1) in s_write()
453 while (cip->used == 0 && cip != ip) { in s_write()
457 KASSERT(up == (uintptr_t)cip, ("md screwed up")); in s_write()
458 del_indir(cip); in s_write()
461 cip = lip[li]; in s_write()