Lines Matching refs:partial
244 * @partial: pointer to the last triple within a chain
252 Indirect *partial)
260 goal = ext4_find_near(inode, partial);
316 * we had read the existing part of chain and partial points to the last
536 Indirect *partial;
552 partial = ext4_get_branch(inode, depth, offsets, chain, &err);
555 if (!partial) {
578 * Count number blocks in a subtree under 'partial'. At each
584 for (i = partial - chain + 1; i < depth; i++)
618 ar.goal = ext4_find_goal(inode, map->m_lblk, partial);
621 indirect_blks = (chain + depth) - partial - 1;
627 ar.len = ext4_blks_to_allocate(partial, indirect_blks,
634 offsets + (partial - chain), partial);
644 err = ext4_splice_branch(handle, &ar, partial, indirect_blks);
668 partial = chain + depth - 1; /* the whole chain */
670 while (partial > chain) {
671 BUFFER_TRACE(partial->bh, "call brelse");
672 brelse(partial->bh);
673 partial--;
767 * ext4_find_shared - find the indirect blocks for partial truncation.
771 * @chain: place to store the pointers to partial indirect blocks
805 Indirect *partial, *p;
812 partial = ext4_get_branch(inode, k, offsets, chain, &err);
814 if (!partial)
815 partial = chain + k-1;
820 if (!partial->key && *partial->p)
823 for (p = partial; (p > chain) && all_zeroes((__le32 *) p->bh->b_data, p->p); p--)
829 * it's easier to cheat and just decrement partial->p.
842 while (partial > p) {
843 brelse(partial->bh);
844 partial--;
847 return partial;
1121 Indirect *partial;
1161 partial = ext4_find_shared(inode, n, offsets, chain, &nr);
1164 if (partial == chain) {
1167 &nr, &nr+1, (chain+n-1) - partial);
1168 *partial->p = 0;
1175 BUFFER_TRACE(partial->bh, "get_write_access");
1176 ext4_free_branches(handle, inode, partial->bh,
1177 partial->p,
1178 partial->p+1, (chain+n-1) - partial);
1182 while (partial > chain) {
1183 ext4_free_branches(handle, inode, partial->bh, partial->p + 1,
1184 (__le32*)partial->bh->b_data+addr_per_block,
1185 (chain+n-1) - partial);
1186 BUFFER_TRACE(partial->bh, "call brelse");
1187 brelse(partial->bh);
1188 partial--;
1237 Indirect *partial, *partial2;
1264 * free partial block at start, and partial block at end of
1280 partial = p = ext4_find_shared(inode, n, offsets, chain, &nr);
1282 if (partial == chain) {
1285 &nr, &nr+1, (chain+n-1) - partial);
1286 *partial->p = 0;
1289 BUFFER_TRACE(partial->bh, "get_write_access");
1290 ext4_free_branches(handle, inode, partial->bh,
1291 partial->p,
1292 partial->p+1, (chain+n-1) - partial);
1300 while (partial > chain) {
1301 ext4_free_branches(handle, inode, partial->bh,
1302 partial->p + 1,
1303 (__le32 *)partial->bh->b_data+addr_per_block,
1304 (chain+n-1) - partial);
1305 partial--;
1345 partial = p = ext4_find_shared(inode, n, offsets, chain, &nr);
1350 int level = min(partial - chain, partial2 - chain2);
1362 if (partial == chain) {
1366 (chain+n-1) - partial);
1367 *partial->p = 0;
1370 BUFFER_TRACE(partial->bh, "get_write_access");
1371 ext4_free_branches(handle, inode, partial->bh,
1372 partial->p,
1373 partial->p+1,
1374 (chain+n-1) - partial);
1389 while (partial > chain || partial2 > chain2) {
1390 int depth = (chain+n-1) - partial;
1393 if (partial > chain && partial2 > chain2 &&
1394 partial->bh->b_blocknr == partial2->bh->b_blocknr) {
1399 ext4_free_branches(handle, inode, partial->bh,
1400 partial->p + 1,
1402 (chain+n-1) - partial);
1407 * The start and end partial branches may not be at the same
1413 if (partial > chain && depth <= depth2) {
1414 ext4_free_branches(handle, inode, partial->bh,
1415 partial->p + 1,
1416 (__le32 *)partial->bh->b_data+addr_per_block,
1417 (chain+n-1) - partial);
1418 partial--;