Lines Matching refs:be

30  * be used to verify the extent tree is consistent as these should all match
48 * were called with since it could be different from ref_root. We also store
79 struct block_entry *be)
88 if (entry->bytenr > be->bytenr)
90 else if (entry->bytenr < be->bytenr)
96 rb_link_node(&be->node, parent_node, p);
97 rb_insert_color(&be->node, root);
235 static void free_block_entry(struct block_entry *be)
242 while ((n = rb_first(&be->roots))) {
244 rb_erase(&re->node, &be->roots);
248 while((n = rb_first(&be->refs))) {
250 rb_erase(&ref->node, &be->refs);
254 while (!list_empty(&be->actions)) {
255 ra = list_first_entry(&be->actions, struct ref_action,
260 kfree(be);
267 struct block_entry *be = NULL, *exist;
271 be = kzalloc(sizeof(struct block_entry), GFP_NOFS);
272 if (!be || !re) {
274 kfree(be);
277 be->bytenr = bytenr;
278 be->len = len;
284 exist = insert_block_entry(&fs_info->block_tree, be);
295 kfree(be);
299 be->num_refs = 0;
300 be->metadata = 0;
301 be->from_disk = 0;
302 be->roots = RB_ROOT;
303 be->refs = RB_ROOT;
304 INIT_LIST_HEAD(&be->actions);
306 insert_root_entry(&be->roots, re);
309 return be;
315 struct block_entry *be;
332 be = add_block_entry(fs_info, bytenr, fs_info->nodesize, ref_root);
333 if (IS_ERR(be)) {
335 return PTR_ERR(be);
337 be->num_refs++;
338 be->from_disk = 1;
339 be->metadata = 1;
343 re = lookup_root_entry(&be->roots, ref_root);
347 exist = insert_ref_entry(&be->refs, ref);
361 struct block_entry *be;
367 be = add_block_entry(fs_info, bytenr, num_bytes, 0);
368 if (IS_ERR(be)) {
370 return PTR_ERR(be);
372 be->num_refs += num_refs;
376 if (insert_ref_entry(&be->refs, ref)) {
391 struct block_entry *be;
402 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
403 if (IS_ERR(be)) {
405 return PTR_ERR(be);
407 be->num_refs += num_refs;
414 if (insert_ref_entry(&be->refs, ref)) {
421 re = lookup_root_entry(&be->roots, ref_root);
586 /* Walk up to the next node that needs to be processed */
623 * Dumps all the information from the block entry to printk, it's going to be
627 struct block_entry *be)
636 be->bytenr, be->len, be->num_refs, be->metadata,
637 be->from_disk);
639 for (n = rb_first(&be->refs); n; n = rb_next(n)) {
647 for (n = rb_first(&be->roots); n; n = rb_next(n)) {
653 list_for_each_entry(ra, &be->actions, list)
670 struct block_entry *be = NULL;
738 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
739 if (IS_ERR(be)) {
742 ret = PTR_ERR(be);
745 be->num_refs++;
747 be->metadata = 1;
749 if (be->num_refs != 1) {
752 dump_block_entry(fs_info, be);
759 while (!list_empty(&be->actions)) {
762 tmp = list_first_entry(&be->actions, struct ref_action,
789 be = lookup_block_entry(&fs_info->block_tree, bytenr);
790 if (!be) {
799 } else if (be->num_refs == 0) {
803 dump_block_entry(fs_info, be);
812 tmp = insert_root_entry(&be->roots, re);
820 exist = insert_ref_entry(&be->refs, ref);
826 dump_block_entry(fs_info, be);
834 rb_erase(&exist->node, &be->refs);
837 } else if (!be->metadata) {
842 dump_block_entry(fs_info, be);
853 dump_block_entry(fs_info, be);
862 re = lookup_root_entry(&be->roots, ref_root);
866 * above when we lookup the be with !parent, but just in
871 generic_ref->real_root, be->bytenr);
872 dump_block_entry(fs_info, be);
881 be->num_refs--;
883 be->num_refs++;
887 list_add_tail(&ra->list, &be->actions);
902 struct block_entry *be;
910 be = rb_entry(n, struct block_entry, node);
911 rb_erase(&be->node, &fs_info->block_tree);
912 free_block_entry(be);
921 struct block_entry *be = NULL, *entry;
936 be = entry;
940 if (be == NULL ||
941 (entry->bytenr < start && be->bytenr > start) ||
942 (entry->bytenr < start && entry->bytenr > be->bytenr))
943 be = entry;
950 if (!be) {
955 n = &be->node;
957 be = rb_entry(n, struct block_entry, node);
959 if (be->bytenr < start && be->bytenr + be->len > start) {
963 dump_block_entry(fs_info, be);
966 if (be->bytenr < start)
968 if (be->bytenr >= start + len)
970 if (be->bytenr + be->len > start + len) {
974 dump_block_entry(fs_info, be);
976 rb_erase(&be->node, &fs_info->block_tree);
977 free_block_entry(be);
982 /* Walk down all roots and build the ref tree, meant to be called at mount */