Lines Matching full:partial
213 Indirect *partial; in get_block() local
221 partial = get_branch(inode, depth, offsets, chain, &err); in get_block()
224 if (!partial) { in get_block()
229 partial = chain+depth-1; /* the whole chain */ in get_block()
236 while (partial > chain) { in get_block()
237 brelse(partial->bh); in get_block()
238 partial--; in get_block()
252 left = (chain + depth) - partial; in get_block()
253 err = alloc_branch(inode, left, offsets+(partial-chain), partial); in get_block()
257 if (splice_branch(inode, chain, partial, left) < 0) in get_block()
264 while (partial > chain) { in get_block()
265 brelse(partial->bh); in get_block()
266 partial--; in get_block()
285 Indirect *partial, *p; in find_shared() local
291 partial = get_branch(inode, k, offsets, chain, &err); in find_shared()
294 if (!partial) in find_shared()
295 partial = chain + k-1; in find_shared()
300 if (!partial->key && *partial->p) { in find_shared()
304 for (p=partial; p>chain && all_zeroes((sysv_zone_t*)p->bh->b_data,p->p); p--) in find_shared()
310 * it's easier to cheat and just decrement partial->p. in find_shared()
320 while (partial > p) { in find_shared()
321 brelse(partial->bh); in find_shared()
322 partial--; in find_shared()
325 return partial; in find_shared()
371 Indirect *partial; in sysv_truncate() local
396 partial = find_shared(inode, n, offsets, chain, &nr); in sysv_truncate()
399 if (partial == chain) in sysv_truncate()
402 dirty_indirect(partial->bh, inode); in sysv_truncate()
403 free_branches(inode, &nr, &nr+1, (chain+n-1) - partial); in sysv_truncate()
406 while (partial > chain) { in sysv_truncate()
407 free_branches(inode, partial->p + 1, block_end(partial->bh), in sysv_truncate()
408 (chain+n-1) - partial); in sysv_truncate()
409 dirty_indirect(partial->bh, inode); in sysv_truncate()
410 brelse (partial->bh); in sysv_truncate()
411 partial--; in sysv_truncate()