mirror of
https://github.com/torvalds/linux.git
synced 2026-06-27 16:45:33 +02:00
Id which proc gets from IDR for inode number and id which proc removes from IDR do not match. E.g. 0x11a transforms into 0x8000011a. Which stayed unnoticed for a long time because, surprise, idr_remove() masks out that high bit before doing anything. All of this due to "| ~MAX_ID_MASK" in release_inode_number(). I still don't understand how it's supposed to work, because "| ~MASK" is not an inversion for "& MAX" operation. So, use just one nice, working addition. Make start offset unsigned int, while I'm at it. It's longness is not used anywhere. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> |
||
|---|---|---|
| .. | ||
| array.c | ||
| base.c | ||
| generic.c | ||
| inode-alloc.txt | ||
| inode.c | ||
| internal.h | ||
| Kconfig | ||
| kcore.c | ||
| kmsg.c | ||
| Makefile | ||
| mmu.c | ||
| nommu.c | ||
| proc_devtree.c | ||
| proc_misc.c | ||
| proc_net.c | ||
| proc_sysctl.c | ||
| proc_tty.c | ||
| root.c | ||
| task_mmu.c | ||
| task_nommu.c | ||
| vmcore.c | ||