Lines Matching full:partial

214 	Indirect *partial;  in get_block()  local
222 partial = get_branch(inode, depth, offsets, chain, &err); in get_block()
225 if (!partial) { in get_block()
230 partial = chain+depth-1; /* the whole chain */ in get_block()
237 while (partial > chain) { in get_block()
238 brelse(partial->bh); in get_block()
239 partial--; in get_block()
253 left = (chain + depth) - partial; in get_block()
254 err = alloc_branch(inode, left, offsets+(partial-chain), partial); in get_block()
258 if (splice_branch(inode, chain, partial, left) < 0) in get_block()
265 while (partial > chain) { in get_block()
266 brelse(partial->bh); in get_block()
267 partial--; in get_block()
286 Indirect *partial, *p; in find_shared() local
292 partial = get_branch(inode, k, offsets, chain, &err); in find_shared()
295 if (!partial) in find_shared()
296 partial = chain + k-1; in find_shared()
301 if (!partial->key && *partial->p) { in find_shared()
305 for (p=partial; p>chain && all_zeroes((sysv_zone_t*)p->bh->b_data,p->p); p--) in find_shared()
311 * it's easier to cheat and just decrement partial->p. in find_shared()
321 while (partial > p) { in find_shared()
322 brelse(partial->bh); in find_shared()
323 partial--; in find_shared()
326 return partial; in find_shared()
372 Indirect *partial; in sysv_truncate() local
397 partial = find_shared(inode, n, offsets, chain, &nr); in sysv_truncate()
400 if (partial == chain) in sysv_truncate()
403 dirty_indirect(partial->bh, inode); in sysv_truncate()
404 free_branches(inode, &nr, &nr+1, (chain+n-1) - partial); in sysv_truncate()
407 while (partial > chain) { in sysv_truncate()
408 free_branches(inode, partial->p + 1, block_end(partial->bh), in sysv_truncate()
409 (chain+n-1) - partial); in sysv_truncate()
410 dirty_indirect(partial->bh, inode); in sysv_truncate()
411 brelse (partial->bh); in sysv_truncate()
412 partial--; in sysv_truncate()