futex: Rework SET_SLOTS Let SET_SLOTS have precedence over default scaling; once user sets a size, stick with it. Notably, doing SET_SLOTS 0 will cause fph->hash_mask to be 0, which will cause __futex_hash() to return global hash buckets. Once in this state, it is impossible to recover, so disable SET_SLOTS. Also, let prctl() users wait-retry the rehash, such that return of prctl() means new size is in effect. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>