On 25 September 2016 at 02:18, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Sat, Sep 24, 2016 at 4:35 PM, Cedric Blancher > <cedric.blancher@xxxxxxxxx> wrote: >>> >>> void *entry = parent->slots[offset]; >>> int siboff = entry - parent->slots; >> >> If entry is a pointer to void, how can you do pointer arithmetic with it? > > It's actually void **. > > (That said, gcc has an extension that considers "void *" to be a byte > pointer, so you can actually do arithmetic on them, and it acts like > "char *") > >> Also, if you use pointer distances, the use of int is not valid, it >> should then be ptrdiff_t siboff. > > The use of "int" is perfectly valid, since it's limited by > RADIX_TREE_MAP_SIZE, so it's going to be a small integer. A specific data type would be wise (aka radtr_mapsz_t) to prevent a disaster as SystemV had early during development. It took AT&T TWO fucking months to figure out that their avl tree implementation had a small type problem with int vs long. Since I'd expect no one cares I'm going to print this email so I can send the scan as PDF each time you hit that problem in the future with "told you so" Ced -- Cedric Blancher <cedric.blancher@xxxxxxxxx> [https://plus.google.com/u/0/+CedricBlancher/] Institute Pasteur -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html