fs/reiserfs/fix_node.c create_virtual_node() /* go through all items those remain in the virtual node (except for the new (inserted) one) */ for (new_num = 0; new_num < vn->vn_nr_item; new_num ++) { int j; struct virtual_item * vi = vn->vn_vi + new_num; int is_affected = ((new_num != vn->vn_affected_item_num) ? 0 : 1); if (is_affected && vn->vn_mode == M_INSERT) continue; /* get item number in source node */ j = old_item_num (new_num, vn->vn_affected_item_num, vn->vn_mode); vi->vi_item_len += ih[j].ih_item_len + IH_SIZE; vi->vi_ih = ih + j; vi->vi_item = B_I_PITEM (Sh, ih + j); vi->vi_uarea = vn->vn_free_ptr; // FIXME: there is no check, that item operation did not // consume too much memory vn->vn_free_ptr += op_create_vi (vn, vi, is_affected, tb->insert_size [0]); if (tb->vn_buf + tb->vn_buf_size < vn->vn_free_ptr) reiserfs_panic (tb->tb_sb, "vs-8030: create_virtual_node: " "virtual node space consumed");