Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-8602 gss: Properly port gss to newer crypto api.
[fs/lustre-release.git]
/
lustre
/
include
/
interval_tree.h
diff --git
a/lustre/include/interval_tree.h
b/lustre/include/interval_tree.h
index
5958790
..
1598119
100644
(file)
--- a/
lustre/include/interval_tree.h
+++ b/
lustre/include/interval_tree.h
@@
-1,6
+1,4
@@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@
-17,16
+15,12
@@
*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
* GPL HEADER END
*/
/*
*
* GPL HEADER END
*/
/*
- * Copyright
2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright
(c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
* Use is subject to license terms.
*/
/*
@@
-42,7
+36,9
@@
#ifndef _INTERVAL_H__
#define _INTERVAL_H__
#ifndef _INTERVAL_H__
#define _INTERVAL_H__
-#include <libcfs/libcfs.h> /* LASSERT. */
+#include <linux/errno.h>
+#include <linux/string.h>
+#include <linux/types.h>
struct interval_node {
struct interval_node *in_left;
struct interval_node {
struct interval_node *in_left;
@@
-79,20
+75,29
@@
static inline __u64 interval_high(struct interval_node *node)
return node->in_extent.end;
}
return node->in_extent.end;
}
-static inline
void
interval_set(struct interval_node *node,
-
__u64 start, __u64 end)
+static inline
int
interval_set(struct interval_node *node,
+ __u64 start, __u64 end)
{
{
- LASSERT(start <= end);
- node->in_extent.start = start;
- node->in_extent.end = end;
- node->in_max_high = end;
+ if (start > end)
+ return -ERANGE;
+ node->in_extent.start = start;
+ node->in_extent.end = end;
+ node->in_max_high = end;
+ return 0;
}
}
+static inline void interval_init(struct interval_node *node)
+{
+ memset(node, 0, sizeof(*node));
+}
+
+int node_equal(struct interval_node *n1, struct interval_node *n2);
+
/* Rules to write an interval callback.
* - the callback returns INTERVAL_ITER_STOP when it thinks the iteration
* should be stopped. It will then cause the iteration function to return
* immediately with return value INTERVAL_ITER_STOP.
/* Rules to write an interval callback.
* - the callback returns INTERVAL_ITER_STOP when it thinks the iteration
* should be stopped. It will then cause the iteration function to return
* immediately with return value INTERVAL_ITER_STOP.
- * - callbacks for interval_iterate and interval_iterate_reverse: Every
+ * - callbacks for interval_iterate and interval_iterate_reverse: Every
* nodes in the tree will be set to @node before the callback being called
* - callback for interval_search: Only overlapped node will be set to @node
* before the callback being called.
* nodes in the tree will be set to @node before the callback being called
* - callback for interval_search: Only overlapped node will be set to @node
* before the callback being called.
@@
-109,21
+114,17
@@
void interval_erase(struct interval_node *node, struct interval_node **root);
enum interval_iter interval_search(struct interval_node *root,
struct interval_node_extent *ex,
interval_callback_t func, void *data);
enum interval_iter interval_search(struct interval_node *root,
struct interval_node_extent *ex,
interval_callback_t func, void *data);
-enum interval_iter interval_search_expand_extent(struct interval_node *root,
- struct interval_node_extent *ex,
- struct interval_node_extent *result_ext,
- interval_callback_t func, void *data);
/* Iterate every node in the tree - by reverse order or regular order. */
/* Iterate every node in the tree - by reverse order or regular order. */
-enum interval_iter interval_iterate(struct interval_node *root,
+enum interval_iter interval_iterate(struct interval_node *root,
interval_callback_t func, void *data);
enum interval_iter interval_iterate_reverse(struct interval_node *root,
interval_callback_t func,void *data);
interval_callback_t func, void *data);
enum interval_iter interval_iterate_reverse(struct interval_node *root,
interval_callback_t func,void *data);
-void interval_expand(struct interval_node *root,
+void interval_expand(struct interval_node *root,
struct interval_node_extent *ext,
struct interval_node_extent *limiter);
struct interval_node_extent *ext,
struct interval_node_extent *limiter);
-int interval_is_overlapped(struct interval_node *root,
+int interval_is_overlapped(struct interval_node *root,
struct interval_node_extent *ex);
struct interval_node *interval_find(struct interval_node *root,
struct interval_node_extent *ex);
struct interval_node_extent *ex);
struct interval_node *interval_find(struct interval_node *root,
struct interval_node_extent *ex);