Important users of unr like tmpfs or pipes can get away with just ever-increasing counters, making the overhead of managing the state for 32 bit counters a pessimization.
The code switches to an atomic variable. This can be further sped up by making the counts variable "allocate" ranges and store them per-cpu.
To that end, the code mimics the 32-bit variant by having a struct.
Architectures which failed to build with 64-bit atomics use a mutex-protected routine.
tmpfs conversion will be done later.