|
@@ -15,6 +15,7 @@
|
|
|
#include <linux/types.h>
|
|
#include <linux/types.h>
|
|
|
#include <linux/bitops.h>
|
|
#include <linux/bitops.h>
|
|
|
#include <linux/init.h>
|
|
#include <linux/init.h>
|
|
|
|
|
+#include <linux/rcupdate.h>
|
|
|
|
|
|
|
|
#if BITS_PER_LONG == 32
|
|
#if BITS_PER_LONG == 32
|
|
|
# define IDR_BITS 5
|
|
# define IDR_BITS 5
|
|
@@ -51,6 +52,7 @@ struct idr_layer {
|
|
|
unsigned long bitmap; /* A zero bit means "space here" */
|
|
unsigned long bitmap; /* A zero bit means "space here" */
|
|
|
struct idr_layer *ary[1<<IDR_BITS];
|
|
struct idr_layer *ary[1<<IDR_BITS];
|
|
|
int count; /* When zero, we can release it */
|
|
int count; /* When zero, we can release it */
|
|
|
|
|
+ struct rcu_head rcu_head;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
struct idr {
|
|
struct idr {
|