diff options
-rw-r--r-- | net/netfilter/nft_rbtree.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/netfilter/nft_rbtree.c b/net/netfilter/nft_rbtree.c index 46214f245665..2c75361077f7 100644 --- a/net/netfilter/nft_rbtree.c +++ b/net/netfilter/nft_rbtree.c | |||
@@ -37,10 +37,11 @@ static bool nft_rbtree_lookup(const struct nft_set *set, | |||
37 | { | 37 | { |
38 | const struct nft_rbtree *priv = nft_set_priv(set); | 38 | const struct nft_rbtree *priv = nft_set_priv(set); |
39 | const struct nft_rbtree_elem *rbe, *interval = NULL; | 39 | const struct nft_rbtree_elem *rbe, *interval = NULL; |
40 | const struct rb_node *parent = priv->root.rb_node; | 40 | const struct rb_node *parent; |
41 | int d; | 41 | int d; |
42 | 42 | ||
43 | spin_lock_bh(&nft_rbtree_lock); | 43 | spin_lock_bh(&nft_rbtree_lock); |
44 | parent = priv->root.rb_node; | ||
44 | while (parent != NULL) { | 45 | while (parent != NULL) { |
45 | rbe = rb_entry(parent, struct nft_rbtree_elem, node); | 46 | rbe = rb_entry(parent, struct nft_rbtree_elem, node); |
46 | 47 | ||
@@ -158,7 +159,6 @@ static int nft_rbtree_get(const struct nft_set *set, struct nft_set_elem *elem) | |||
158 | struct nft_rbtree_elem *rbe; | 159 | struct nft_rbtree_elem *rbe; |
159 | int d; | 160 | int d; |
160 | 161 | ||
161 | spin_lock_bh(&nft_rbtree_lock); | ||
162 | while (parent != NULL) { | 162 | while (parent != NULL) { |
163 | rbe = rb_entry(parent, struct nft_rbtree_elem, node); | 163 | rbe = rb_entry(parent, struct nft_rbtree_elem, node); |
164 | 164 | ||
@@ -173,11 +173,9 @@ static int nft_rbtree_get(const struct nft_set *set, struct nft_set_elem *elem) | |||
173 | !(rbe->flags & NFT_SET_ELEM_INTERVAL_END)) | 173 | !(rbe->flags & NFT_SET_ELEM_INTERVAL_END)) |
174 | nft_data_copy(&elem->data, rbe->data); | 174 | nft_data_copy(&elem->data, rbe->data); |
175 | elem->flags = rbe->flags; | 175 | elem->flags = rbe->flags; |
176 | spin_unlock_bh(&nft_rbtree_lock); | ||
177 | return 0; | 176 | return 0; |
178 | } | 177 | } |
179 | } | 178 | } |
180 | spin_unlock_bh(&nft_rbtree_lock); | ||
181 | return -ENOENT; | 179 | return -ENOENT; |
182 | } | 180 | } |
183 | 181 | ||