Commit cb05580
idr: support storing NULL in the IDR
The radix tree interprets storing NULL as a deleted entry. Several users
of the IDR API use NULL as a temporary placeholder, or intentionally
convert entries between NULL and non-NULL pointers to keep IDs reserved
but not necessarily pointing to a valid entry at any given moment. Adapt
the radix tree to cope with NULL pointers when being used as an IDR.
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Matthew Wilcox <[email protected]>
Tested-by: Heiko Stuebner <[email protected]>
Cc: Stephen Rothwell <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>1 parent 46a5e5a commit cb05580
3 files changed
+65
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | | - | |
| 156 | + | |
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
160 | | - | |
161 | | - | |
| 160 | + | |
162 | 161 | | |
163 | 162 | | |
164 | 163 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
604 | 604 | | |
605 | 605 | | |
606 | 606 | | |
607 | | - | |
| 607 | + | |
608 | 608 | | |
609 | 609 | | |
610 | 610 | | |
| |||
615 | 615 | | |
616 | 616 | | |
617 | 617 | | |
618 | | - | |
| 618 | + | |
619 | 619 | | |
620 | | - | |
| 620 | + | |
| 621 | + | |
621 | 622 | | |
622 | 623 | | |
623 | 624 | | |
| |||
1084 | 1085 | | |
1085 | 1086 | | |
1086 | 1087 | | |
1087 | | - | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
1088 | 1093 | | |
1089 | 1094 | | |
1090 | 1095 | | |
| |||
1192 | 1197 | | |
1193 | 1198 | | |
1194 | 1199 | | |
| 1200 | + | |
| 1201 | + | |
1195 | 1202 | | |
1196 | 1203 | | |
1197 | 1204 | | |
| |||
1515 | 1522 | | |
1516 | 1523 | | |
1517 | 1524 | | |
1518 | | - | |
1519 | | - | |
1520 | 1525 | | |
1521 | 1526 | | |
1522 | 1527 | | |
| |||
1972 | 1977 | | |
1973 | 1978 | | |
1974 | 1979 | | |
1975 | | - | |
| 1980 | + | |
1976 | 1981 | | |
1977 | 1982 | | |
1978 | 1983 | | |
| |||
1989 | 1994 | | |
1990 | 1995 | | |
1991 | 1996 | | |
1992 | | - | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
1993 | 2000 | | |
1994 | | - | |
| 2001 | + | |
| 2002 | + | |
1995 | 2003 | | |
1996 | 2004 | | |
1997 | 2005 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
77 | 119 | | |
78 | 120 | | |
79 | 121 | | |
| |||
112 | 154 | | |
113 | 155 | | |
114 | 156 | | |
115 | | - | |
116 | 157 | | |
| 158 | + | |
117 | 159 | | |
118 | 160 | | |
119 | 161 | | |
| |||
176 | 218 | | |
177 | 219 | | |
178 | 220 | | |
| 221 | + | |
179 | 222 | | |
180 | 223 | | |
181 | 224 | | |
182 | 225 | | |
| 226 | + | |
183 | 227 | | |
184 | 228 | | |
185 | 229 | | |
| |||
0 commit comments