Commit 550929fa authored by Mikulas Patocka's avatar Mikulas Patocka Committed by Alasdair G Kergon

dm persistent data: rename node to btree_node

This patch fixes a compilation failure on sparc32 by renaming struct node.

struct node is already defined in include/linux/node.h. On sparc32, it
happens to be included through other dependencies and persistent-data
doesn't compile because of conflicting declarations.
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent 29594404
...@@ -36,13 +36,13 @@ struct node_header { ...@@ -36,13 +36,13 @@ struct node_header {
__le32 padding; __le32 padding;
} __packed; } __packed;
struct node { struct btree_node {
struct node_header header; struct node_header header;
__le64 keys[0]; __le64 keys[0];
} __packed; } __packed;
void inc_children(struct dm_transaction_manager *tm, struct node *n, void inc_children(struct dm_transaction_manager *tm, struct btree_node *n,
struct dm_btree_value_type *vt); struct dm_btree_value_type *vt);
int new_block(struct dm_btree_info *info, struct dm_block **result); int new_block(struct dm_btree_info *info, struct dm_block **result);
...@@ -64,7 +64,7 @@ struct ro_spine { ...@@ -64,7 +64,7 @@ struct ro_spine {
void init_ro_spine(struct ro_spine *s, struct dm_btree_info *info); void init_ro_spine(struct ro_spine *s, struct dm_btree_info *info);
int exit_ro_spine(struct ro_spine *s); int exit_ro_spine(struct ro_spine *s);
int ro_step(struct ro_spine *s, dm_block_t new_child); int ro_step(struct ro_spine *s, dm_block_t new_child);
struct node *ro_node(struct ro_spine *s); struct btree_node *ro_node(struct ro_spine *s);
struct shadow_spine { struct shadow_spine {
struct dm_btree_info *info; struct dm_btree_info *info;
...@@ -98,17 +98,17 @@ int shadow_root(struct shadow_spine *s); ...@@ -98,17 +98,17 @@ int shadow_root(struct shadow_spine *s);
/* /*
* Some inlines. * Some inlines.
*/ */
static inline __le64 *key_ptr(struct node *n, uint32_t index) static inline __le64 *key_ptr(struct btree_node *n, uint32_t index)
{ {
return n->keys + index; return n->keys + index;
} }
static inline void *value_base(struct node *n) static inline void *value_base(struct btree_node *n)
{ {
return &n->keys[le32_to_cpu(n->header.max_entries)]; return &n->keys[le32_to_cpu(n->header.max_entries)];
} }
static inline void *value_ptr(struct node *n, uint32_t index) static inline void *value_ptr(struct btree_node *n, uint32_t index)
{ {
uint32_t value_size = le32_to_cpu(n->header.value_size); uint32_t value_size = le32_to_cpu(n->header.value_size);
return value_base(n) + (value_size * index); return value_base(n) + (value_size * index);
...@@ -117,7 +117,7 @@ static inline void *value_ptr(struct node *n, uint32_t index) ...@@ -117,7 +117,7 @@ static inline void *value_ptr(struct node *n, uint32_t index)
/* /*
* Assumes the values are suitably-aligned and converts to core format. * Assumes the values are suitably-aligned and converts to core format.
*/ */
static inline uint64_t value64(struct node *n, uint32_t index) static inline uint64_t value64(struct btree_node *n, uint32_t index)
{ {
__le64 *values_le = value_base(n); __le64 *values_le = value_base(n);
...@@ -127,7 +127,7 @@ static inline uint64_t value64(struct node *n, uint32_t index) ...@@ -127,7 +127,7 @@ static inline uint64_t value64(struct node *n, uint32_t index)
/* /*
* Searching for a key within a single node. * Searching for a key within a single node.
*/ */
int lower_bound(struct node *n, uint64_t key); int lower_bound(struct btree_node *n, uint64_t key);
extern struct dm_block_validator btree_node_validator; extern struct dm_block_validator btree_node_validator;
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
/* /*
* Some little utilities for moving node data around. * Some little utilities for moving node data around.
*/ */
static void node_shift(struct node *n, int shift) static void node_shift(struct btree_node *n, int shift)
{ {
uint32_t nr_entries = le32_to_cpu(n->header.nr_entries); uint32_t nr_entries = le32_to_cpu(n->header.nr_entries);
uint32_t value_size = le32_to_cpu(n->header.value_size); uint32_t value_size = le32_to_cpu(n->header.value_size);
...@@ -79,7 +79,7 @@ static void node_shift(struct node *n, int shift) ...@@ -79,7 +79,7 @@ static void node_shift(struct node *n, int shift)
} }
} }
static void node_copy(struct node *left, struct node *right, int shift) static void node_copy(struct btree_node *left, struct btree_node *right, int shift)
{ {
uint32_t nr_left = le32_to_cpu(left->header.nr_entries); uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
uint32_t value_size = le32_to_cpu(left->header.value_size); uint32_t value_size = le32_to_cpu(left->header.value_size);
...@@ -108,7 +108,7 @@ static void node_copy(struct node *left, struct node *right, int shift) ...@@ -108,7 +108,7 @@ static void node_copy(struct node *left, struct node *right, int shift)
/* /*
* Delete a specific entry from a leaf node. * Delete a specific entry from a leaf node.
*/ */
static void delete_at(struct node *n, unsigned index) static void delete_at(struct btree_node *n, unsigned index)
{ {
unsigned nr_entries = le32_to_cpu(n->header.nr_entries); unsigned nr_entries = le32_to_cpu(n->header.nr_entries);
unsigned nr_to_copy = nr_entries - (index + 1); unsigned nr_to_copy = nr_entries - (index + 1);
...@@ -128,7 +128,7 @@ static void delete_at(struct node *n, unsigned index) ...@@ -128,7 +128,7 @@ static void delete_at(struct node *n, unsigned index)
n->header.nr_entries = cpu_to_le32(nr_entries - 1); n->header.nr_entries = cpu_to_le32(nr_entries - 1);
} }
static unsigned merge_threshold(struct node *n) static unsigned merge_threshold(struct btree_node *n)
{ {
return le32_to_cpu(n->header.max_entries) / 3; return le32_to_cpu(n->header.max_entries) / 3;
} }
...@@ -136,7 +136,7 @@ static unsigned merge_threshold(struct node *n) ...@@ -136,7 +136,7 @@ static unsigned merge_threshold(struct node *n)
struct child { struct child {
unsigned index; unsigned index;
struct dm_block *block; struct dm_block *block;
struct node *n; struct btree_node *n;
}; };
static struct dm_btree_value_type le64_type = { static struct dm_btree_value_type le64_type = {
...@@ -147,7 +147,7 @@ static struct dm_btree_value_type le64_type = { ...@@ -147,7 +147,7 @@ static struct dm_btree_value_type le64_type = {
.equal = NULL .equal = NULL
}; };
static int init_child(struct dm_btree_info *info, struct node *parent, static int init_child(struct dm_btree_info *info, struct btree_node *parent,
unsigned index, struct child *result) unsigned index, struct child *result)
{ {
int r, inc; int r, inc;
...@@ -177,7 +177,7 @@ static int exit_child(struct dm_btree_info *info, struct child *c) ...@@ -177,7 +177,7 @@ static int exit_child(struct dm_btree_info *info, struct child *c)
return dm_tm_unlock(info->tm, c->block); return dm_tm_unlock(info->tm, c->block);
} }
static void shift(struct node *left, struct node *right, int count) static void shift(struct btree_node *left, struct btree_node *right, int count)
{ {
uint32_t nr_left = le32_to_cpu(left->header.nr_entries); uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
uint32_t nr_right = le32_to_cpu(right->header.nr_entries); uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
...@@ -203,11 +203,11 @@ static void shift(struct node *left, struct node *right, int count) ...@@ -203,11 +203,11 @@ static void shift(struct node *left, struct node *right, int count)
right->header.nr_entries = cpu_to_le32(nr_right + count); right->header.nr_entries = cpu_to_le32(nr_right + count);
} }
static void __rebalance2(struct dm_btree_info *info, struct node *parent, static void __rebalance2(struct dm_btree_info *info, struct btree_node *parent,
struct child *l, struct child *r) struct child *l, struct child *r)
{ {
struct node *left = l->n; struct btree_node *left = l->n;
struct node *right = r->n; struct btree_node *right = r->n;
uint32_t nr_left = le32_to_cpu(left->header.nr_entries); uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
uint32_t nr_right = le32_to_cpu(right->header.nr_entries); uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
unsigned threshold = 2 * merge_threshold(left) + 1; unsigned threshold = 2 * merge_threshold(left) + 1;
...@@ -239,7 +239,7 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, ...@@ -239,7 +239,7 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info,
unsigned left_index) unsigned left_index)
{ {
int r; int r;
struct node *parent; struct btree_node *parent;
struct child left, right; struct child left, right;
parent = dm_block_data(shadow_current(s)); parent = dm_block_data(shadow_current(s));
...@@ -270,9 +270,9 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info, ...@@ -270,9 +270,9 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info,
* in right, then rebalance2. This wastes some cpu, but I want something * in right, then rebalance2. This wastes some cpu, but I want something
* simple atm. * simple atm.
*/ */
static void delete_center_node(struct dm_btree_info *info, struct node *parent, static void delete_center_node(struct dm_btree_info *info, struct btree_node *parent,
struct child *l, struct child *c, struct child *r, struct child *l, struct child *c, struct child *r,
struct node *left, struct node *center, struct node *right, struct btree_node *left, struct btree_node *center, struct btree_node *right,
uint32_t nr_left, uint32_t nr_center, uint32_t nr_right) uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
{ {
uint32_t max_entries = le32_to_cpu(left->header.max_entries); uint32_t max_entries = le32_to_cpu(left->header.max_entries);
...@@ -301,9 +301,9 @@ static void delete_center_node(struct dm_btree_info *info, struct node *parent, ...@@ -301,9 +301,9 @@ static void delete_center_node(struct dm_btree_info *info, struct node *parent,
/* /*
* Redistributes entries among 3 sibling nodes. * Redistributes entries among 3 sibling nodes.
*/ */
static void redistribute3(struct dm_btree_info *info, struct node *parent, static void redistribute3(struct dm_btree_info *info, struct btree_node *parent,
struct child *l, struct child *c, struct child *r, struct child *l, struct child *c, struct child *r,
struct node *left, struct node *center, struct node *right, struct btree_node *left, struct btree_node *center, struct btree_node *right,
uint32_t nr_left, uint32_t nr_center, uint32_t nr_right) uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
{ {
int s; int s;
...@@ -343,12 +343,12 @@ static void redistribute3(struct dm_btree_info *info, struct node *parent, ...@@ -343,12 +343,12 @@ static void redistribute3(struct dm_btree_info *info, struct node *parent,
*key_ptr(parent, r->index) = right->keys[0]; *key_ptr(parent, r->index) = right->keys[0];
} }
static void __rebalance3(struct dm_btree_info *info, struct node *parent, static void __rebalance3(struct dm_btree_info *info, struct btree_node *parent,
struct child *l, struct child *c, struct child *r) struct child *l, struct child *c, struct child *r)
{ {
struct node *left = l->n; struct btree_node *left = l->n;
struct node *center = c->n; struct btree_node *center = c->n;
struct node *right = r->n; struct btree_node *right = r->n;
uint32_t nr_left = le32_to_cpu(left->header.nr_entries); uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
uint32_t nr_center = le32_to_cpu(center->header.nr_entries); uint32_t nr_center = le32_to_cpu(center->header.nr_entries);
...@@ -371,7 +371,7 @@ static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info, ...@@ -371,7 +371,7 @@ static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info,
unsigned left_index) unsigned left_index)
{ {
int r; int r;
struct node *parent = dm_block_data(shadow_current(s)); struct btree_node *parent = dm_block_data(shadow_current(s));
struct child left, center, right; struct child left, center, right;
/* /*
...@@ -421,7 +421,7 @@ static int get_nr_entries(struct dm_transaction_manager *tm, ...@@ -421,7 +421,7 @@ static int get_nr_entries(struct dm_transaction_manager *tm,
{ {
int r; int r;
struct dm_block *block; struct dm_block *block;
struct node *n; struct btree_node *n;
r = dm_tm_read_lock(tm, b, &btree_node_validator, &block); r = dm_tm_read_lock(tm, b, &btree_node_validator, &block);
if (r) if (r)
...@@ -438,7 +438,7 @@ static int rebalance_children(struct shadow_spine *s, ...@@ -438,7 +438,7 @@ static int rebalance_children(struct shadow_spine *s,
{ {
int i, r, has_left_sibling, has_right_sibling; int i, r, has_left_sibling, has_right_sibling;
uint32_t child_entries; uint32_t child_entries;
struct node *n; struct btree_node *n;
n = dm_block_data(shadow_current(s)); n = dm_block_data(shadow_current(s));
...@@ -483,7 +483,7 @@ static int rebalance_children(struct shadow_spine *s, ...@@ -483,7 +483,7 @@ static int rebalance_children(struct shadow_spine *s,
return r; return r;
} }
static int do_leaf(struct node *n, uint64_t key, unsigned *index) static int do_leaf(struct btree_node *n, uint64_t key, unsigned *index)
{ {
int i = lower_bound(n, key); int i = lower_bound(n, key);
...@@ -506,7 +506,7 @@ static int remove_raw(struct shadow_spine *s, struct dm_btree_info *info, ...@@ -506,7 +506,7 @@ static int remove_raw(struct shadow_spine *s, struct dm_btree_info *info,
uint64_t key, unsigned *index) uint64_t key, unsigned *index)
{ {
int i = *index, r; int i = *index, r;
struct node *n; struct btree_node *n;
for (;;) { for (;;) {
r = shadow_step(s, root, vt); r = shadow_step(s, root, vt);
...@@ -556,7 +556,7 @@ int dm_btree_remove(struct dm_btree_info *info, dm_block_t root, ...@@ -556,7 +556,7 @@ int dm_btree_remove(struct dm_btree_info *info, dm_block_t root,
unsigned level, last_level = info->levels - 1; unsigned level, last_level = info->levels - 1;
int index = 0, r = 0; int index = 0, r = 0;
struct shadow_spine spine; struct shadow_spine spine;
struct node *n; struct btree_node *n;
init_shadow_spine(&spine, info); init_shadow_spine(&spine, info);
for (level = 0; level < info->levels; level++) { for (level = 0; level < info->levels; level++) {
......
...@@ -23,7 +23,7 @@ static void node_prepare_for_write(struct dm_block_validator *v, ...@@ -23,7 +23,7 @@ static void node_prepare_for_write(struct dm_block_validator *v,
struct dm_block *b, struct dm_block *b,
size_t block_size) size_t block_size)
{ {
struct node *n = dm_block_data(b); struct btree_node *n = dm_block_data(b);
struct node_header *h = &n->header; struct node_header *h = &n->header;
h->blocknr = cpu_to_le64(dm_block_location(b)); h->blocknr = cpu_to_le64(dm_block_location(b));
...@@ -38,7 +38,7 @@ static int node_check(struct dm_block_validator *v, ...@@ -38,7 +38,7 @@ static int node_check(struct dm_block_validator *v,
struct dm_block *b, struct dm_block *b,
size_t block_size) size_t block_size)
{ {
struct node *n = dm_block_data(b); struct btree_node *n = dm_block_data(b);
struct node_header *h = &n->header; struct node_header *h = &n->header;
size_t value_size; size_t value_size;
__le32 csum_disk; __le32 csum_disk;
...@@ -164,7 +164,7 @@ int ro_step(struct ro_spine *s, dm_block_t new_child) ...@@ -164,7 +164,7 @@ int ro_step(struct ro_spine *s, dm_block_t new_child)
return r; return r;
} }
struct node *ro_node(struct ro_spine *s) struct btree_node *ro_node(struct ro_spine *s)
{ {
struct dm_block *block; struct dm_block *block;
......
...@@ -38,7 +38,7 @@ static void array_insert(void *base, size_t elt_size, unsigned nr_elts, ...@@ -38,7 +38,7 @@ static void array_insert(void *base, size_t elt_size, unsigned nr_elts,
/*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/
/* makes the assumption that no two keys are the same. */ /* makes the assumption that no two keys are the same. */
static int bsearch(struct node *n, uint64_t key, int want_hi) static int bsearch(struct btree_node *n, uint64_t key, int want_hi)
{ {
int lo = -1, hi = le32_to_cpu(n->header.nr_entries); int lo = -1, hi = le32_to_cpu(n->header.nr_entries);
...@@ -58,12 +58,12 @@ static int bsearch(struct node *n, uint64_t key, int want_hi) ...@@ -58,12 +58,12 @@ static int bsearch(struct node *n, uint64_t key, int want_hi)
return want_hi ? hi : lo; return want_hi ? hi : lo;
} }
int lower_bound(struct node *n, uint64_t key) int lower_bound(struct btree_node *n, uint64_t key)
{ {
return bsearch(n, key, 0); return bsearch(n, key, 0);
} }
void inc_children(struct dm_transaction_manager *tm, struct node *n, void inc_children(struct dm_transaction_manager *tm, struct btree_node *n,
struct dm_btree_value_type *vt) struct dm_btree_value_type *vt)
{ {
unsigned i; unsigned i;
...@@ -77,7 +77,7 @@ void inc_children(struct dm_transaction_manager *tm, struct node *n, ...@@ -77,7 +77,7 @@ void inc_children(struct dm_transaction_manager *tm, struct node *n,
vt->inc(vt->context, value_ptr(n, i)); vt->inc(vt->context, value_ptr(n, i));
} }
static int insert_at(size_t value_size, struct node *node, unsigned index, static int insert_at(size_t value_size, struct btree_node *node, unsigned index,
uint64_t key, void *value) uint64_t key, void *value)
__dm_written_to_disk(value) __dm_written_to_disk(value)
{ {
...@@ -122,7 +122,7 @@ int dm_btree_empty(struct dm_btree_info *info, dm_block_t *root) ...@@ -122,7 +122,7 @@ int dm_btree_empty(struct dm_btree_info *info, dm_block_t *root)
{ {
int r; int r;
struct dm_block *b; struct dm_block *b;
struct node *n; struct btree_node *n;
size_t block_size; size_t block_size;
uint32_t max_entries; uint32_t max_entries;
...@@ -154,7 +154,7 @@ EXPORT_SYMBOL_GPL(dm_btree_empty); ...@@ -154,7 +154,7 @@ EXPORT_SYMBOL_GPL(dm_btree_empty);
#define MAX_SPINE_DEPTH 64 #define MAX_SPINE_DEPTH 64
struct frame { struct frame {
struct dm_block *b; struct dm_block *b;
struct node *n; struct btree_node *n;
unsigned level; unsigned level;
unsigned nr_children; unsigned nr_children;
unsigned current_child; unsigned current_child;
...@@ -295,7 +295,7 @@ EXPORT_SYMBOL_GPL(dm_btree_del); ...@@ -295,7 +295,7 @@ EXPORT_SYMBOL_GPL(dm_btree_del);
/*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/
static int btree_lookup_raw(struct ro_spine *s, dm_block_t block, uint64_t key, static int btree_lookup_raw(struct ro_spine *s, dm_block_t block, uint64_t key,
int (*search_fn)(struct node *, uint64_t), int (*search_fn)(struct btree_node *, uint64_t),
uint64_t *result_key, void *v, size_t value_size) uint64_t *result_key, void *v, size_t value_size)
{ {
int i, r; int i, r;
...@@ -406,7 +406,7 @@ static int btree_split_sibling(struct shadow_spine *s, dm_block_t root, ...@@ -406,7 +406,7 @@ static int btree_split_sibling(struct shadow_spine *s, dm_block_t root,
size_t size; size_t size;
unsigned nr_left, nr_right; unsigned nr_left, nr_right;
struct dm_block *left, *right, *parent; struct dm_block *left, *right, *parent;
struct node *ln, *rn, *pn; struct btree_node *ln, *rn, *pn;
__le64 location; __le64 location;
left = shadow_current(s); left = shadow_current(s);
...@@ -491,7 +491,7 @@ static int btree_split_beneath(struct shadow_spine *s, uint64_t key) ...@@ -491,7 +491,7 @@ static int btree_split_beneath(struct shadow_spine *s, uint64_t key)
size_t size; size_t size;
unsigned nr_left, nr_right; unsigned nr_left, nr_right;
struct dm_block *left, *right, *new_parent; struct dm_block *left, *right, *new_parent;
struct node *pn, *ln, *rn; struct btree_node *pn, *ln, *rn;
__le64 val; __le64 val;
new_parent = shadow_current(s); new_parent = shadow_current(s);
...@@ -576,7 +576,7 @@ static int btree_insert_raw(struct shadow_spine *s, dm_block_t root, ...@@ -576,7 +576,7 @@ static int btree_insert_raw(struct shadow_spine *s, dm_block_t root,
uint64_t key, unsigned *index) uint64_t key, unsigned *index)
{ {
int r, i = *index, top = 1; int r, i = *index, top = 1;
struct node *node; struct btree_node *node;
for (;;) { for (;;) {
r = shadow_step(s, root, vt); r = shadow_step(s, root, vt);
...@@ -643,7 +643,7 @@ static int insert(struct dm_btree_info *info, dm_block_t root, ...@@ -643,7 +643,7 @@ static int insert(struct dm_btree_info *info, dm_block_t root,
unsigned level, index = -1, last_level = info->levels - 1; unsigned level, index = -1, last_level = info->levels - 1;
dm_block_t block = root; dm_block_t block = root;
struct shadow_spine spine; struct shadow_spine spine;
struct node *n; struct btree_node *n;
struct dm_btree_value_type le64_type; struct dm_btree_value_type le64_type;
le64_type.context = NULL; le64_type.context = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment