From 39637b6e845feb3336a56d2092c071328ee0a2f3 Mon Sep 17 00:00:00 2001 From: jxiong Date: Wed, 5 Nov 2008 03:20:14 +0000 Subject: [PATCH] b=15715 r=adilger,green Fixed the race of destroying and enqueuing a ldlm lock at OST side. --- lustre/include/interval_tree.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lustre/include/interval_tree.h b/lustre/include/interval_tree.h index a79b686..df85d56 100644 --- a/lustre/include/interval_tree.h +++ b/lustre/include/interval_tree.h @@ -49,8 +49,10 @@ struct interval_node { struct interval_node *in_left; struct interval_node *in_right; struct interval_node *in_parent; - __u8 in_color; - __u8 res1[7]; /* tags, 8-bytes aligned */ + unsigned in_color:1, + in_intree:1, /** set if the node is in tree */ + in_res1:30; + __u8 in_res2[4]; /** tags, 8-bytes aligned */ __u64 in_max_high; struct interval_node_extent { __u64 start; @@ -63,6 +65,11 @@ enum interval_iter { INTERVAL_ITER_STOP = 2 }; +static inline int interval_is_intree(struct interval_node *node) +{ + return node->in_intree == 1; +} + static inline __u64 interval_low(struct interval_node *node) { return node->in_extent.start; -- 1.8.3.1