Lines Matching full:run

61 			  struct runs_tree *run, const CLST *vcn)  in attr_load_runs()  argument
69 if (svcn >= evcn + 1 || run_is_mapped_full(run, svcn, evcn)) in attr_load_runs()
81 err = run_unpack_ex(run, ni->mi.sbi, ni->mi.rno, svcn, evcn, in attr_load_runs()
93 static int run_deallocate_ex(struct ntfs_sb_info *sbi, struct runs_tree *run, in run_deallocate_ex() argument
103 if (!run_lookup_entry(run, vcn, &lcn, &clen, &idx)) { in run_deallocate_ex()
105 run_truncate(run, vcn0); in run_deallocate_ex()
132 if (!run_get_entry(run, ++idx, &vcn, &lcn, &clen) || in run_deallocate_ex()
134 /* Save memory - don't load entire run. */ in run_deallocate_ex()
147 * attr_allocate_clusters - Find free space, mark it as used and store in @run.
149 int attr_allocate_clusters(struct ntfs_sb_info *sbi, struct runs_tree *run, in attr_allocate_clusters() argument
156 size_t cnt = run->count; in attr_allocate_clusters()
180 /* Add new fragment into run storage. */ in attr_allocate_clusters()
181 if (!run_add_entry(run, vcn, lcn, flen, opt & ALLOCATE_MFT)) { in attr_allocate_clusters()
202 (fr && run->count - cnt >= fr)) { in attr_allocate_clusters()
213 run_deallocate_ex(sbi, run, vcn0, vcn - vcn0, NULL, false); in attr_allocate_clusters()
214 run_truncate(run, vcn0); in attr_allocate_clusters()
228 u64 new_size, struct runs_tree *run, in attr_make_nonresident() argument
260 run_init(run); in attr_make_nonresident()
275 err = attr_allocate_clusters(sbi, run, 0, 0, len, NULL, in attr_make_nonresident()
284 err = ntfs_sb_write_run(sbi, run, 0, data, rsize, 0); in attr_make_nonresident()
316 attr_s->name_len, run, 0, alen, in attr_make_nonresident()
341 run_deallocate(sbi, run, false); in attr_make_nonresident()
342 run_close(run); in attr_make_nonresident()
354 u64 new_size, struct runs_tree *run, in attr_set_size_res() argument
372 run, ins_attr, NULL); in attr_set_size_res()
401 const __le16 *name, u8 name_len, struct runs_tree *run, in attr_set_size() argument
432 err = attr_set_size_res(ni, attr_b, le_b, mi_b, new_size, run, in attr_set_size()
500 err = attr_load_runs(attr, ni, run, NULL); in attr_set_size()
517 * - update packed run in 'mi' in attr_set_size()
542 !run_lookup_entry(run, vcn, &lcn, NULL, NULL)) { in attr_set_size()
564 if (!run_add_entry(run, vcn, SPARSE_LCN, to_allocate, in attr_set_size()
573 sbi, run, vcn, lcn, to_allocate, &pre_alloc, in attr_set_size()
593 err = mi_pack_runs(mi, attr, run, vcn - svcn); in attr_set_size()
651 err = ni_insert_nonresident(ni, type, name, name_len, run, in attr_set_size()
674 run_truncate_head(run, evcn + 1); in attr_set_size()
694 * - update packed run in 'mi' in attr_set_size()
705 err = mi_pack_runs(mi, attr, run, vcn - svcn); in attr_set_size()
750 err = run_deallocate_ex(sbi, run, vcn, evcn - vcn + 1, &dlen, in attr_set_size()
761 run_truncate(run, vcn); in attr_set_size()
856 if (mi_pack_runs(mi, attr, run, evcn - svcn + 1)) in attr_set_size()
860 run_deallocate_ex(sbi, run, vcn, alen, NULL, false); in attr_set_size()
862 run_truncate(run, vcn); in attr_set_size()
886 struct runs_tree *run = &ni->file.run; in attr_data_get_block() local
903 if (!run_lookup_entry(run, vcn, lcn, len, NULL)) in attr_data_get_block()
964 err = attr_load_runs(attr, ni, run, NULL); in attr_data_get_block()
969 if (run_lookup_entry(run, vcn, lcn, len, NULL)) { in attr_data_get_block()
1016 err = attr_load_runs(attr, ni, run, NULL); in attr_data_get_block()
1029 if (!run_add_entry(run, evcn1, SPARSE_LCN, vcn - evcn1, in attr_data_get_block()
1034 } else if (vcn && !run_lookup_entry(run, vcn - 1, &hint, NULL, NULL)) { in attr_data_get_block()
1039 err = attr_allocate_clusters(sbi, run, vcn, hint + 1, to_alloc, NULL, in attr_data_get_block()
1053 if (!run_lookup_entry(run, vcn0, lcn, len, NULL)) { in attr_data_get_block()
1069 err = mi_pack_runs(mi, attr, run, max(end, evcn1) - svcn); in attr_data_get_block()
1171 err = attr_load_runs(attr, ni, run, &end); in attr_data_get_block()
1177 err = mi_pack_runs(mi, attr, run, evcn1 - next_svcn); in attr_data_get_block()
1188 err = ni_insert_nonresident(ni, ATTR_DATA, NULL, 0, run, in attr_data_get_block()
1195 run_truncate_around(run, vcn); in attr_data_get_block()
1211 if (run_deallocate_ex(sbi, run, vcn, alen, NULL, false) || in attr_data_get_block()
1212 !run_add_entry(run, vcn, SPARSE_LCN, alen, false) || in attr_data_get_block()
1213 mi_pack_runs(mi, attr, run, max(end, evcn1) - svcn)) { in attr_data_get_block()
1293 const __le16 *name, u8 name_len, struct runs_tree *run, in attr_load_runs_vcn() argument
1325 err = run_unpack_ex(run, ni->mi.sbi, ni->mi.rno, svcn, evcn, svcn, in attr_load_runs_vcn()
1336 const __le16 *name, u8 name_len, struct runs_tree *run, in attr_load_runs_range() argument
1347 if (!run_lookup_entry(run, vcn, &lcn, &clen, NULL)) { in attr_load_runs_range()
1348 err = attr_load_runs_vcn(ni, type, name, name_len, run, in attr_load_runs_range()
1366 struct runs_tree *run, u64 frame, u64 frames, in attr_wof_frame_info() argument
1451 ARRAY_SIZE(WOF_NAME), run, in attr_wof_frame_info()
1456 err = ntfs_bio_pages(sbi, run, &page, 1, from, in attr_wof_frame_info()
1517 struct runs_tree *run; in attr_is_frame_compressed() local
1529 run = &ni->file.run; in attr_is_frame_compressed()
1531 if (!run_lookup_entry(run, vcn, &lcn, &clen, &idx)) { in attr_is_frame_compressed()
1533 attr->name_len, run, vcn); in attr_is_frame_compressed()
1537 if (!run_lookup_entry(run, vcn, &lcn, &clen, &idx)) in attr_is_frame_compressed()
1566 if (!run_get_entry(run, ++idx, &vcn, &lcn, &clen) || in attr_is_frame_compressed()
1570 attr->name_len, run, vcn_next); in attr_is_frame_compressed()
1575 if (!run_lookup_entry(run, vcn, &lcn, &clen, &idx)) in attr_is_frame_compressed()
1618 struct runs_tree *run = &ni->file.run; in attr_allocate_frame() local
1661 err = attr_load_runs(attr, ni, run, NULL); in attr_allocate_frame()
1677 err = run_deallocate_ex(sbi, run, vcn + len, clst_data - len, in attr_allocate_frame()
1682 if (!run_add_entry(run, vcn + len, SPARSE_LCN, clst_data - len, in attr_allocate_frame()
1688 /* Run contains updated range [vcn + len : end). */ in attr_allocate_frame()
1693 !run_lookup_entry(run, vcn + clst_data - 1, &hint, NULL, in attr_allocate_frame()
1698 err = attr_allocate_clusters(sbi, run, vcn + clst_data, in attr_allocate_frame()
1706 /* Run contains updated range [vcn + clst_data : end). */ in attr_allocate_frame()
1712 err = mi_pack_runs(mi, attr, run, max(end, evcn1) - svcn); in attr_allocate_frame()
1794 err = attr_load_runs(attr, ni, run, &end); in attr_allocate_frame()
1800 err = mi_pack_runs(mi, attr, run, evcn1 - next_svcn); in attr_allocate_frame()
1812 err = ni_insert_nonresident(ni, ATTR_DATA, NULL, 0, run, in attr_allocate_frame()
1819 run_truncate_around(run, vcn); in attr_allocate_frame()
1839 struct runs_tree *run = &ni->file.run; in attr_collapse_range() local
1890 err = attr_set_size(ni, ATTR_DATA, NULL, 0, &ni->file.run, vbo, in attr_collapse_range()
1945 err = attr_load_runs(attr, ni, run, &svcn); in attr_collapse_range()
1951 err = run_deallocate_ex(sbi, run, vcn1, eat, &dealloc, in attr_collapse_range()
1956 if (!run_collapse_range(run, vcn1, eat)) { in attr_collapse_range()
1970 err = mi_pack_runs(mi, attr, run, evcn1 - svcn - eat); in attr_collapse_range()
1977 ni, ATTR_DATA, NULL, 0, run, next_svcn, in attr_collapse_range()
1988 run_truncate(run, 0); in attr_collapse_range()
2097 struct runs_tree *run = &ni->file.run; in attr_punch_hole() local
2159 run_truncate(run, 0); in attr_punch_hole()
2197 err = attr_load_runs(attr, ni, run, &svcn); in attr_punch_hole()
2208 err = run_deallocate_ex(NULL, run, vcn1, zero, &hole2, false); in attr_punch_hole()
2216 /* Make a clone of run to undo. */ in attr_punch_hole()
2217 err = run_clone(run, &run2); in attr_punch_hole()
2222 if (!run_add_entry(run, vcn1, SPARSE_LCN, zero, false)) { in attr_punch_hole()
2227 /* Update run in attribute segment. */ in attr_punch_hole()
2228 err = mi_pack_runs(mi, attr, run, evcn1 - svcn); in attr_punch_hole()
2234 err = ni_insert_nonresident(ni, ATTR_DATA, NULL, 0, run, in attr_punch_hole()
2250 run_truncate(run, 0); in attr_punch_hole()
2315 struct runs_tree *run = &ni->file.run; in attr_insert_range() local
2371 err = attr_set_size(ni, ATTR_DATA, NULL, 0, run, in attr_insert_range()
2427 run_truncate(run, 0); /* clear cached values. */ in attr_insert_range()
2428 err = attr_load_runs(attr, ni, run, NULL); in attr_insert_range()
2432 if (!run_insert_range(run, vcn, len)) { in attr_insert_range()
2438 err = mi_pack_runs(mi, attr, run, evcn1 + len - svcn); in attr_insert_range()
2456 err = ni_insert_nonresident(ni, ATTR_DATA, NULL, 0, run, in attr_insert_range()
2496 run_truncate(run, 0); /* clear cached values. */ in attr_insert_range()
2528 if (attr_load_runs(attr, ni, run, NULL)) in attr_insert_range()
2531 if (!run_collapse_range(run, vcn, len)) in attr_insert_range()
2534 if (mi_pack_runs(mi, attr, run, evcn1 + len - svcn)) in attr_insert_range()