Lines Matching full:insert
83 * If this extent tree is supported by an extent map, insert
590 * Tree depth may change during truncate, or insert. If we're in ocfs2_reinit_path()
659 * Insert an extent block at given index.
671 * safely removed if we ever need to insert extent block in ocfs2_path_insert_eb()
2044 * - When our insert into the right path leaf is at the leftmost edge
2371 * - In the case that the rotation requires a post-insert update,
2446 "Owner %llu: error during insert of %u " in ocfs2_rotate_tree_right()
2466 * before the record insert is that an error in ocfs2_rotate_tree_right()
2504 * instead of a real insert, then we have to in ocfs2_rotate_tree_right()
3713 * Since the leftright insert always covers the entire in ocfs2_try_to_merge_extent()
3714 * extent, this call will delete the insert record in ocfs2_try_to_merge_extent()
3876 struct ocfs2_insert_type *insert) in ocfs2_insert_at_leaf() argument
3878 int i = insert->ins_contig_index; in ocfs2_insert_at_leaf()
3884 if (insert->ins_split != SPLIT_NONE) { in ocfs2_insert_at_leaf()
3889 insert->ins_split, rec, in ocfs2_insert_at_leaf()
3895 * Contiguous insert - either left or right. in ocfs2_insert_at_leaf()
3897 if (insert->ins_contig != CONTIG_NONE) { in ocfs2_insert_at_leaf()
3899 if (insert->ins_contig == CONTIG_LEFT) { in ocfs2_insert_at_leaf()
3909 * Handle insert into an empty leaf. in ocfs2_insert_at_leaf()
3920 * Appending insert. in ocfs2_insert_at_leaf()
3922 if (insert->ins_appending == APPEND_TAIL) { in ocfs2_insert_at_leaf()
3933 "insert.cpos %u, insert.clusters %u\n", in ocfs2_insert_at_leaf()
4018 * If our appending insert is at the leftmost edge of a leaf, in ocfs2_append_rec_to_path()
4111 * do the later insert there. in ocfs2_split_record()
4115 * it back for a post-insert update. in ocfs2_split_record()
4123 * can just do the insert there. in ocfs2_split_record()
4130 * leaf. The insert will be into the in ocfs2_split_record()
4147 * Left path is easy - we can just allow the insert to in ocfs2_split_record()
4166 * right_path is the path we want to do the actual insert
4168 * portion of the tree after an edge insert.
4175 struct ocfs2_insert_type *insert) in ocfs2_insert_path() argument
4210 if (insert->ins_split != SPLIT_NONE) { in ocfs2_insert_path()
4217 insert_rec, insert->ins_split); in ocfs2_insert_path()
4221 * have a guarantee that the later edge insert will in ocfs2_insert_path()
4229 insert); in ocfs2_insert_path()
4236 * up portions of the tree after the insert. in ocfs2_insert_path()
4308 * left_path to account for an edge insert. in ocfs2_do_insert_extent()
4310 * XXX: When modifying this code, keep in mind that an insert in ocfs2_do_insert_extent()
4492 struct ocfs2_insert_type *insert, in ocfs2_figure_contig_type() argument
4505 insert->ins_contig_index = i; in ocfs2_figure_contig_type()
4509 insert->ins_contig = contig_type; in ocfs2_figure_contig_type()
4511 if (insert->ins_contig != CONTIG_NONE) { in ocfs2_figure_contig_type()
4513 &el->l_recs[insert->ins_contig_index]; in ocfs2_figure_contig_type()
4523 insert->ins_contig = CONTIG_NONE; in ocfs2_figure_contig_type()
4531 * insert at the tail of the rightmost leaf.
4537 static void ocfs2_figure_appending_type(struct ocfs2_insert_type *insert, in ocfs2_figure_appending_type() argument
4545 insert->ins_appending = APPEND_NONE; in ocfs2_figure_appending_type()
4568 insert->ins_appending = APPEND_TAIL; in ocfs2_figure_appending_type()
4572 * Helper function called at the beginning of an insert.
4578 * - Whether the insert is an appending one.
4588 struct ocfs2_insert_type *insert) in ocfs2_figure_insert_type() argument
4596 insert->ins_split = SPLIT_NONE; in ocfs2_figure_insert_type()
4599 insert->ins_tree_depth = le16_to_cpu(el->l_tree_depth); in ocfs2_figure_insert_type()
4620 * Unless we have a contiguous insert, we'll need to know if in ocfs2_figure_insert_type()
4630 if (!insert->ins_tree_depth) { in ocfs2_figure_insert_type()
4631 ocfs2_figure_contig_type(et, insert, el, insert_rec); in ocfs2_figure_insert_type()
4632 ocfs2_figure_appending_type(insert, el, insert_rec); in ocfs2_figure_insert_type()
4665 ocfs2_figure_contig_type(et, insert, el, insert_rec); in ocfs2_figure_insert_type()
4668 * The insert code isn't quite ready to deal with all cases of in ocfs2_figure_insert_type()
4669 * left contiguousness. Specifically, if it's an insert into in ocfs2_figure_insert_type()
4676 if (insert->ins_contig == CONTIG_LEFT && in ocfs2_figure_insert_type()
4677 insert->ins_contig_index == 0) in ocfs2_figure_insert_type()
4678 insert->ins_contig = CONTIG_NONE; in ocfs2_figure_insert_type()
4690 * tree path. This might be an appending insert. There are in ocfs2_figure_insert_type()
4696 ocfs2_figure_appending_type(insert, el, insert_rec); in ocfs2_figure_insert_type()
4710 * Insert an extent into a btree.
4725 struct ocfs2_insert_type insert = {0, }; in ocfs2_insert_extent() local
4744 &free_records, &insert); in ocfs2_insert_extent()
4750 trace_ocfs2_insert_extent(insert.ins_appending, insert.ins_contig, in ocfs2_insert_extent()
4751 insert.ins_contig_index, free_records, in ocfs2_insert_extent()
4752 insert.ins_tree_depth); in ocfs2_insert_extent()
4754 if (insert.ins_contig == CONTIG_NONE && free_records == 0) { in ocfs2_insert_extent()
4756 &insert.ins_tree_depth, &last_eb_bh, in ocfs2_insert_extent()
4765 status = ocfs2_do_insert_extent(handle, et, &rec, &insert); in ocfs2_insert_extent()
4930 struct ocfs2_insert_type insert; in ocfs2_split_and_insert() local
4959 memset(&insert, 0, sizeof(struct ocfs2_insert_type)); in ocfs2_split_and_insert()
4960 insert.ins_appending = APPEND_NONE; in ocfs2_split_and_insert()
4961 insert.ins_contig = CONTIG_NONE; in ocfs2_split_and_insert()
4962 insert.ins_tree_depth = depth; in ocfs2_split_and_insert()
4970 insert.ins_split = SPLIT_LEFT; in ocfs2_split_and_insert()
4972 insert.ins_split = SPLIT_RIGHT; in ocfs2_split_and_insert()
4978 insert.ins_split = SPLIT_RIGHT; in ocfs2_split_and_insert()
4989 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert); in ocfs2_split_and_insert()
5271 * XXX: This should be fixed up so that we just re-insert the in ocfs2_mark_extent_written()
5297 struct ocfs2_insert_type insert; in ocfs2_split_tree() local
5340 memset(&insert, 0, sizeof(struct ocfs2_insert_type)); in ocfs2_split_tree()
5341 insert.ins_appending = APPEND_NONE; in ocfs2_split_tree()
5342 insert.ins_contig = CONTIG_NONE; in ocfs2_split_tree()
5343 insert.ins_split = SPLIT_RIGHT; in ocfs2_split_tree()
5344 insert.ins_tree_depth = depth; in ocfs2_split_tree()
5346 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert); in ocfs2_split_tree()
7140 * Save two copies, one for insert, and one that can in ocfs2_convert_inline_data_to_extents()