Lines Matching defs:shift

60 static void node_shift(struct btree_node *n, int shift)
65 if (shift < 0) {
66 shift = -shift;
67 BUG_ON(shift > nr_entries);
68 BUG_ON((void *) key_ptr(n, shift) >= value_ptr(n, shift));
70 key_ptr(n, shift),
71 (nr_entries - shift) * sizeof(__le64));
73 value_ptr(n, shift),
74 (nr_entries - shift) * value_size);
76 BUG_ON(nr_entries + shift > le32_to_cpu(n->header.max_entries));
77 memmove(key_ptr(n, shift),
80 memmove(value_ptr(n, shift),
86 static int node_copy(struct btree_node *left, struct btree_node *right, int shift)
96 if (shift < 0) {
97 shift = -shift;
99 if (nr_left + shift > le32_to_cpu(left->header.max_entries)) {
100 DMERR("bad shift");
106 shift * sizeof(__le64));
109 shift * value_size);
111 if (shift > le32_to_cpu(right->header.max_entries)) {
112 DMERR("bad shift");
117 key_ptr(left, nr_left - shift),
118 shift * sizeof(__le64));
120 value_ptr(left, nr_left - shift),
121 shift * value_size);
192 static int shift(struct btree_node *left, struct btree_node *right, int count)
206 DMERR("node shift out of bounds");
211 DMERR("node shift out of bounds");
271 ret = shift(left, right, nr_left - target_left);
317 unsigned int shift = min(max_entries - nr_left, nr_center);
319 if (nr_left + shift > max_entries) {
320 DMERR("node shift out of bounds");
324 node_copy(left, center, -shift);
325 left->header.nr_entries = cpu_to_le32(nr_left + shift);
327 if (shift != nr_center) {
328 shift = nr_center - shift;
330 if ((nr_right + shift) > max_entries) {
331 DMERR("node shift out of bounds");
335 node_shift(right, shift);
336 node_copy(center, right, shift);
337 right->header.nr_entries = cpu_to_le32(nr_right + shift);
371 ret = shift(left, center, -nr_center);
376 ret = shift(left, right, s);
382 ret = shift(left, center, s);
387 ret = shift(center, right, target_right - nr_right);
394 ret = shift(center, right, nr_center);
398 ret = shift(left, right, s);
403 ret = shift(center, right, s);
408 ret = shift(left, center, nr_left - target_left);