patch-2.3.15 linux/include/net/ip6_fib.h

Next file: linux/include/net/ip6_route.h
Previous file: linux/include/net/ip.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.14/linux/include/net/ip6_fib.h linux/include/net/ip6_fib.h
@@ -94,20 +94,25 @@
 };
 
 extern struct fib6_walker_t fib6_walker_list;
+extern rwlock_t fib6_walker_lock;
 
 extern __inline__ void fib6_walker_link(struct fib6_walker_t *w)
 {
+	write_lock_bh(&fib6_walker_lock);
 	w->next = fib6_walker_list.next;
 	w->prev = &fib6_walker_list;
 	w->next->prev = w;
 	w->prev->next = w;
+	write_unlock_bh(&fib6_walker_lock);
 }
 
 extern __inline__ void fib6_walker_unlink(struct fib6_walker_t *w)
 {
+	write_lock_bh(&fib6_walker_lock);
 	w->next->prev = w->prev;
 	w->prev->next = w->next;
 	w->prev = w->next = w;
+	write_unlock_bh(&fib6_walker_lock);
 }
 
 struct rt6_statistics {
@@ -173,5 +178,6 @@
 
 extern void			fib6_gc_cleanup(void);
 
+extern void			fib6_init(void);
 #endif
 #endif

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)