Lines Matching refs:sf

285 static void btrfsic_stack_frame_free(struct btrfsic_stack_frame *sf);
918 struct btrfsic_stack_frame *sf; in btrfsic_stack_frame_alloc() local
920 sf = kzalloc(sizeof(*sf), GFP_NOFS); in btrfsic_stack_frame_alloc()
921 if (sf) in btrfsic_stack_frame_alloc()
922 sf->magic = BTRFSIC_BLOCK_STACK_FRAME_MAGIC_NUMBER; in btrfsic_stack_frame_alloc()
923 return sf; in btrfsic_stack_frame_alloc()
926 static void btrfsic_stack_frame_free(struct btrfsic_stack_frame *sf) in btrfsic_stack_frame_free() argument
928 BUG_ON(!(NULL == sf || in btrfsic_stack_frame_free()
929 BTRFSIC_BLOCK_STACK_FRAME_MAGIC_NUMBER == sf->magic)); in btrfsic_stack_frame_free()
930 kfree(sf); in btrfsic_stack_frame_free()
940 struct btrfsic_stack_frame *sf; in btrfsic_process_metablock() local
946 sf = &initial_stack_frame; in btrfsic_process_metablock()
947 sf->error = 0; in btrfsic_process_metablock()
948 sf->i = -1; in btrfsic_process_metablock()
949 sf->limit_nesting = first_limit_nesting; in btrfsic_process_metablock()
950 sf->block = first_block; in btrfsic_process_metablock()
951 sf->block_ctx = first_block_ctx; in btrfsic_process_metablock()
952 sf->next_block = NULL; in btrfsic_process_metablock()
953 sf->hdr = first_hdr; in btrfsic_process_metablock()
954 sf->prev = NULL; in btrfsic_process_metablock()
957 sf->block->generation = le64_to_cpu(sf->hdr->generation); in btrfsic_process_metablock()
958 if (0 == sf->hdr->level) { in btrfsic_process_metablock()
960 (struct btrfs_leaf *)sf->hdr; in btrfsic_process_metablock()
962 if (-1 == sf->i) { in btrfsic_process_metablock()
963 sf->nr = btrfs_stack_header_nritems(&leafhdr->header); in btrfsic_process_metablock()
967 sf->block_ctx->start, sf->nr, in btrfsic_process_metablock()
975 if (0 == sf->num_copies || sf->mirror_num > sf->num_copies) { in btrfsic_process_metablock()
976 sf->i++; in btrfsic_process_metablock()
977 sf->num_copies = 0; in btrfsic_process_metablock()
980 if (sf->i < sf->nr) { in btrfsic_process_metablock()
983 (uintptr_t)(leafhdr->items + sf->i) - in btrfsic_process_metablock()
991 sf->block_ctx->len) { in btrfsic_process_metablock()
994 sf->block_ctx->start, in btrfsic_process_metablock()
995 sf->block_ctx->dev->name); in btrfsic_process_metablock()
998 btrfsic_read_from_block_data(sf->block_ctx, in btrfsic_process_metablock()
1015 sf->block_ctx->len) in btrfsic_process_metablock()
1018 sf->block_ctx, &root_item, in btrfsic_process_metablock()
1023 sf->error = in btrfsic_process_metablock()
1026 sf->block, in btrfsic_process_metablock()
1027 sf->block_ctx, in btrfsic_process_metablock()
1029 sf->limit_nesting, in btrfsic_process_metablock()
1030 &sf->next_block_ctx, in btrfsic_process_metablock()
1031 &sf->next_block, in btrfsic_process_metablock()
1033 &sf->num_copies, in btrfsic_process_metablock()
1034 &sf->mirror_num, in btrfsic_process_metablock()
1038 if (sf->error) in btrfsic_process_metablock()
1041 if (NULL != sf->next_block) { in btrfsic_process_metablock()
1044 sf->next_block_ctx.datav[0]; in btrfsic_process_metablock()
1049 sf->error = -1; in btrfsic_process_metablock()
1051 &sf-> in btrfsic_process_metablock()
1057 next_stack->block = sf->next_block; in btrfsic_process_metablock()
1059 &sf->next_block_ctx; in btrfsic_process_metablock()
1063 sf->limit_nesting - 1; in btrfsic_process_metablock()
1064 next_stack->prev = sf; in btrfsic_process_metablock()
1065 sf = next_stack; in btrfsic_process_metablock()
1070 sf->error = btrfsic_handle_extent_data( in btrfsic_process_metablock()
1072 sf->block, in btrfsic_process_metablock()
1073 sf->block_ctx, in btrfsic_process_metablock()
1076 if (sf->error) in btrfsic_process_metablock()
1083 struct btrfs_node *const nodehdr = (struct btrfs_node *)sf->hdr; in btrfsic_process_metablock()
1085 if (-1 == sf->i) { in btrfsic_process_metablock()
1086 sf->nr = btrfs_stack_header_nritems(&nodehdr->header); in btrfsic_process_metablock()
1090 sf->block_ctx->start, in btrfsic_process_metablock()
1091 nodehdr->header.level, sf->nr, in btrfsic_process_metablock()
1099 if (0 == sf->num_copies || sf->mirror_num > sf->num_copies) { in btrfsic_process_metablock()
1100 sf->i++; in btrfsic_process_metablock()
1101 sf->num_copies = 0; in btrfsic_process_metablock()
1104 if (sf->i < sf->nr) { in btrfsic_process_metablock()
1109 key_ptr_offset = (uintptr_t)(nodehdr->ptrs + sf->i) - in btrfsic_process_metablock()
1112 sf->block_ctx->len) { in btrfsic_process_metablock()
1114 sf->block_ctx->start, in btrfsic_process_metablock()
1115 sf->block_ctx->dev->name); in btrfsic_process_metablock()
1119 sf->block_ctx, &key_ptr, key_ptr_offset, in btrfsic_process_metablock()
1123 sf->error = btrfsic_create_link_to_next_block( in btrfsic_process_metablock()
1125 sf->block, in btrfsic_process_metablock()
1126 sf->block_ctx, in btrfsic_process_metablock()
1128 sf->limit_nesting, in btrfsic_process_metablock()
1129 &sf->next_block_ctx, in btrfsic_process_metablock()
1130 &sf->next_block, in btrfsic_process_metablock()
1132 &sf->num_copies, in btrfsic_process_metablock()
1133 &sf->mirror_num, in btrfsic_process_metablock()
1136 if (sf->error) in btrfsic_process_metablock()
1139 if (NULL != sf->next_block) { in btrfsic_process_metablock()
1142 sf->next_block_ctx.datav[0]; in btrfsic_process_metablock()
1146 sf->error = -1; in btrfsic_process_metablock()
1151 next_stack->block = sf->next_block; in btrfsic_process_metablock()
1152 next_stack->block_ctx = &sf->next_block_ctx; in btrfsic_process_metablock()
1156 sf->limit_nesting - 1; in btrfsic_process_metablock()
1157 next_stack->prev = sf; in btrfsic_process_metablock()
1158 sf = next_stack; in btrfsic_process_metablock()
1167 if (NULL != sf->prev) { in btrfsic_process_metablock()
1168 struct btrfsic_stack_frame *const prev = sf->prev; in btrfsic_process_metablock()
1171 btrfsic_release_block_ctx(sf->block_ctx); in btrfsic_process_metablock()
1173 if (sf->error) { in btrfsic_process_metablock()
1174 prev->error = sf->error; in btrfsic_process_metablock()
1175 btrfsic_stack_frame_free(sf); in btrfsic_process_metablock()
1176 sf = prev; in btrfsic_process_metablock()
1180 btrfsic_stack_frame_free(sf); in btrfsic_process_metablock()
1181 sf = prev; in btrfsic_process_metablock()
1184 BUG_ON(&initial_stack_frame != sf); in btrfsic_process_metablock()
1187 return sf->error; in btrfsic_process_metablock()