Lines Matching refs:vcn

21 	CLST vcn; /* Virtual cluster number. */  member
34 static bool run_lookup(const struct runs_tree *run, CLST vcn, size_t *index) in run_lookup() argument
49 if (vcn < r->vcn) { in run_lookup()
54 if (vcn < r->vcn + r->len) { in run_lookup()
60 if (vcn >= r->vcn + r->len) { in run_lookup()
65 if (vcn >= r->vcn) { in run_lookup()
74 if (vcn < r->vcn) { in run_lookup()
78 } else if (vcn >= r->vcn + r->len) { in run_lookup()
104 CLST end = r->vcn + r->len; in run_consolidate()
108 if (n->vcn > end) in run_consolidate()
111 dl = end - n->vcn; in run_consolidate()
123 n->vcn += dl; in run_consolidate()
180 next_vcn = r->vcn + r->len; in run_is_mapped_full()
187 if (r->vcn != next_vcn) in run_is_mapped_full()
192 bool run_lookup_entry(const struct runs_tree *run, CLST vcn, CLST *lcn, in run_lookup_entry() argument
203 if (!run_lookup(run, vcn, &idx)) in run_lookup_entry()
208 if (vcn >= r->vcn + r->len) in run_lookup_entry()
211 gap = vcn - r->vcn; in run_lookup_entry()
228 void run_truncate_head(struct runs_tree *run, CLST vcn) in run_truncate_head() argument
233 if (run_lookup(run, vcn, &index)) { in run_truncate_head()
236 if (vcn > r->vcn) { in run_truncate_head()
237 CLST dlen = vcn - r->vcn; in run_truncate_head()
239 r->vcn = vcn; in run_truncate_head()
263 void run_truncate(struct runs_tree *run, CLST vcn) in run_truncate() argument
273 if (run_lookup(run, vcn, &index)) { in run_truncate()
276 r->len = vcn - r->vcn; in run_truncate()
300 void run_truncate_around(struct runs_tree *run, CLST vcn) in run_truncate_around() argument
302 run_truncate_head(run, vcn); in run_truncate_around()
305 run_truncate(run, (run->runs + (run->count >> 1))->vcn); in run_truncate_around()
316 bool run_add_entry(struct runs_tree *run, CLST vcn, CLST lcn, CLST len, in run_add_entry() argument
331 inrange = run_lookup(run, vcn, &index); in run_add_entry()
343 if (t->vcn + t->len == vcn && in run_add_entry()
414 r->vcn = vcn; in run_add_entry()
429 (lcn != SPARSE_LCN && lcn != r->lcn + (vcn - r->vcn))) { in run_add_entry()
430 CLST to_eat = vcn - r->vcn; in run_add_entry()
439 tail_vcn = r->vcn + Tovcn; in run_add_entry()
458 if (r->vcn + r->len < vcn + len) in run_add_entry()
459 r->len += len - ((r->vcn + r->len) - vcn); in run_add_entry()
489 bool run_collapse_range(struct runs_tree *run, CLST vcn, CLST len) in run_collapse_range() argument
495 if (WARN_ON(!run_lookup(run, vcn, &index))) in run_collapse_range()
500 end = vcn + len; in run_collapse_range()
502 if (vcn > r->vcn) { in run_collapse_range()
503 if (r->vcn + r->len <= end) { in run_collapse_range()
505 r->len = vcn - r->vcn; in run_collapse_range()
511 if (!run_add_entry(run, vcn, SPARSE_LCN, len, false)) in run_collapse_range()
513 return run_collapse_range(run, vcn, len); in run_collapse_range()
525 if (r->vcn >= end) { in run_collapse_range()
526 r->vcn -= len; in run_collapse_range()
530 if (r->vcn + r->len <= end) { in run_collapse_range()
536 d = end - r->vcn; in run_collapse_range()
540 r->vcn -= len - d; in run_collapse_range()
555 bool run_insert_range(struct runs_tree *run, CLST vcn, CLST len) in run_insert_range() argument
560 if (WARN_ON(!run_lookup(run, vcn, &index))) in run_insert_range()
566 if (vcn > r->vcn) in run_insert_range()
570 r->vcn += len; in run_insert_range()
574 if (vcn > r->vcn) { in run_insert_range()
576 CLST len1 = vcn - r->vcn; in run_insert_range()
582 if (!run_add_entry(run, vcn + len, lcn2, len2, false)) in run_insert_range()
586 if (!run_add_entry(run, vcn, SPARSE_LCN, len, false)) in run_insert_range()
595 bool run_get_entry(const struct runs_tree *run, size_t index, CLST *vcn, in run_get_entry() argument
608 if (vcn) in run_get_entry()
609 *vcn = r->vcn; in run_get_entry()
820 CLST next_vcn, vcn, lcn; in run_pack() local
841 for (next_vcn = r->vcn + r->len; next_vcn < evcn1; in run_pack()
842 next_vcn = r->vcn + r->len) { in run_pack()
843 if (++r >= r_end || r->vcn != next_vcn) in run_pack()
849 len = svcn - r->vcn; in run_pack()
850 vcn = svcn; in run_pack()
855 next_vcn = vcn + len; in run_pack()
857 len = evcn1 - vcn; in run_pack()
902 vcn = r->vcn; in run_pack()
921 CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf, in run_unpack() argument
1017 } else if (vcn64 >= vcn) { in run_unpack()
1020 } else if (next_vcn > vcn) { in run_unpack()
1021 u64 dlen = vcn - vcn64; in run_unpack()
1023 if (!run_add_entry(run, vcn, lcn + dlen, len - dlen, in run_unpack()
1048 CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf, in run_unpack_ex() argument
1057 ret = run_unpack(run, sbi, ino, svcn, evcn, vcn, run_buf, run_buf_size); in run_unpack_ex()
1067 next_vcn = vcn = svcn; in run_unpack_ex()
1070 for (ok = run_lookup_entry(run, vcn, &lcn, &len, &index); in run_unpack_ex()
1072 ok = run_get_entry(run, ++index, &vcn, &lcn, &len)) { in run_unpack_ex()
1073 if (!ok || next_vcn != vcn) in run_unpack_ex()
1076 next_vcn = vcn + len; in run_unpack_ex()
1131 int run_get_highest_vcn(CLST vcn, const u8 *run_buf, u64 *highest_vcn) in run_get_highest_vcn() argument
1133 u64 vcn64 = vcn; in run_get_highest_vcn()