Commit [c52b0b] Maximize Restore History

pids: alloc_pidmap: remove the unnecessary boundary checks

alloc_pidmap() calculates max_scan so that if the initial offset != 0 we
inspect the first map->page twice. This is correct, we want to find the
unused bits < offset in this bitmap block. Add the comment.

But it doesn't make any sense to stop the find_next_offset() loop when we
are looking into this map->page for the second time. We have already
already checked the bits >= offset during the first attempt, it is fine to
do this again, no matter if we succeed this time or not.

Remove this hard-to-understand code. It optimizes the very unlikely case
when we are going to fail, but slows down the more likely case.

Signed-off-by: Oleg Nesterov <>
Cc: Salman Qazi <>
Cc: Ingo Molnar <>
Cc: Sukadev Bhattiprolu <>
Cc: "Eric W. Biederman" <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>

Oleg Nesterov Oleg Nesterov 2010-08-11

Linus Torvalds Linus Torvalds 2010-08-11

changed kernel
changed kernel/pid.c
kernel/pid.c Diff Switch to side-by-side view