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-12616 obclass: fix MDS start/stop race
[fs/lustre-release.git]
/
lustre
/
include
/
interval_tree.h
diff --git
a/lustre/include/interval_tree.h
b/lustre/include/interval_tree.h
index
b50278b
..
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,15
+75,24
@@
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
/* 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