Runtime analysis of bit sorting algorithm with input size and integer size
If you treat $b$ as a constant, then $O(2^b n)$ is $O(n)$, and $O(n)$ is right.

If $b$ is not a constant, $O(2^b n)$ is not $O(n)$.

I think it would help to review Landau notation.  The running time is whatever it is; it is some value $T(n,b)$ that depends on both $n$ and $b$.  The big-O notation helps us understand how this value grows as you increase $n$ but hold $b$ fixed, or how it grows as you increase both $n$ and $b$.  You have to decide which of those you want to understand (do you want to understand its behavior as you increase $n$ while holding $b$ fixed?  do you want to understand how it grows when you increase $b$ while holding $n$ fixed?  do you want to understand how it grows when you increase both of them?  that will lead to different results and different ways of applying big-O notation).