Lines Matching defs:partial
2407 * file system when freeing a partial cluster containing at least one
2408 * delayed and unwritten block. A partial cluster meeting that
2432 struct partial_cluster *partial,
2463 trace_ext4_remove_blocks(inode, ex, from, to, partial);
2466 * if we have a partial cluster, and it's different from the
2471 if (partial->state != initial &&
2472 partial->pclu != EXT4_B2C(sbi, last_pblk)) {
2473 if (partial->state == tofree) {
2475 if (ext4_is_pending(inode, partial->lblk))
2478 EXT4_C2B(sbi, partial->pclu),
2481 ext4_rereserve_cluster(inode, partial->lblk);
2483 partial->state = initial;
2490 * We free the partial cluster at the end of the extent (if any),
2492 * state is nofree). If a partial cluster exists here, it must be
2497 /* partial, left end cluster aligned, right end unaligned */
2500 (partial->state != nofree)) {
2508 partial->state = initial;
2515 * For bigalloc file systems, we never free a partial cluster
2523 /* reset the partial cluster if we've freed past it */
2524 if (partial->state != initial && partial->pclu != EXT4_B2C(sbi, pblk))
2525 partial->state = initial;
2530 * record the partial cluster at the beginning of the extent. It
2533 * (not shared with another extent). Else, reset the partial
2538 if (partial->state == initial) {
2539 partial->pclu = EXT4_B2C(sbi, pblk);
2540 partial->lblk = from;
2541 partial->state = tofree;
2544 partial->state = initial;
2568 struct partial_cluster *partial,
2600 trace_ext4_ext_rm_leaf(inode, start, ex, partial);
2630 partial->pclu = EXT4_B2C(sbi, pblk);
2631 partial->state = nofree;
2666 * punched range. Note that partial clusters are accounted for
2686 err = ext4_remove_blocks(handle, inode, ex, partial, a, b);
2737 * If there's a partial cluster and at least one extent remains in
2738 * the leaf, free the partial cluster if it isn't shared with the
2740 * we reset the partial cluster because we've reached the start of the
2743 if (partial->state == tofree && ex >= EXT_FIRST_EXTENT(eh)) {
2745 if (partial->pclu != EXT4_B2C(sbi, pblk)) {
2748 if (ext4_is_pending(inode, partial->lblk))
2751 EXT4_C2B(sbi, partial->pclu),
2754 ext4_rereserve_cluster(inode, partial->lblk);
2756 partial->state = initial;
2770 * returns 1 if current index has to be freed (even partial)
2781 * if truncate on deeper level happened, it wasn't partial,
2795 struct partial_cluster partial;
2799 partial.pclu = 0;
2800 partial.lblk = 0;
2801 partial.state = initial;
2865 partial.pclu = EXT4_B2C(sbi, pblk);
2866 partial.state = nofree;
2881 partial.state == initial) {
2884 * If the partial cluster hasn't been set, set it to
2888 * retrying and keep the original partial cluster info
2898 partial.pclu = EXT4_B2C(sbi, pblk);
2899 partial.state = nofree;
2935 &partial, start, end);
3007 trace_ext4_ext_remove_space_done(inode, start, end, depth, &partial,
3011 * if there's a partial cluster and we have removed the first extent
3012 * in the file, then we also free the partial cluster, if any
3014 if (partial.state == tofree && err == 0) {
3017 if (ext4_is_pending(inode, partial.lblk))
3020 EXT4_C2B(sbi, partial.pclu),
3023 ext4_rereserve_cluster(inode, partial.lblk);
3024 partial.state = initial;
4682 /* Zero out partial block at the edges of the range */