/*
* Copyright (C) 2013, Trustees of Indiana University
*
- * Copyright (c) 2013, 2014, Intel Corporation.
+ * Copyright (c) 2013, 2017, Intel Corporation.
*
* Author: Joshua Walgenbach <jjw@iu.edu>
*/
#define _NODEMAP_INTERNAL_H
#include <lustre_nodemap.h>
-#include <interval_tree.h>
+#include <linux/rbtree.h>
#define DEFAULT_NODEMAP "default"
-/* Turn on proc debug interface to allow OSS and
- * MDS nodes to configure nodemap independently of
- * MGS (since the nodemap distribution is not written
- * yet */
-#define NODEMAP_PROC_DEBUG 1
-
/* Default nobody uid and gid values */
#define NODEMAP_NOBODY_UID 99
/* list for nodemap */
struct list_head rn_list;
/* nid interval tree */
- struct interval_node rn_node;
+ lnet_nid_t rn_start,
+ rn_end,
+ rn_subtree_last;
+ struct rb_node rn_rb;
};
struct lu_idmap {
lnet_nid_t *end_nid);
void range_init_tree(void);
struct lu_idmap *idmap_create(__u32 client_id, __u32 fs_id);
-void idmap_insert(enum nodemap_id_type id_type, struct lu_idmap *idmap,
- struct lu_nodemap *nodemap);
+struct lu_idmap *idmap_insert(enum nodemap_id_type id_type,
+ struct lu_idmap *idmap,
+ struct lu_nodemap *nodemap);
void idmap_delete(enum nodemap_id_type id_type, struct lu_idmap *idmap,
struct lu_nodemap *nodemap);
void idmap_delete_tree(struct lu_nodemap *nodemap);