mempool_alloc() cannot fail for GFP_NOIO allocation,
so there is no point testing for failure.
One place the code tested for failure was passing "0" as the GFP
flags. This is most unusually and is probably meant to be GFP_NOIO,
so that is changed.
Allocation from ->extra_pool and
mempool_alloc() should only be called with GFP_ATOMIC when
it is not safe to wait. Passing __GFP_NOFAIL to kmalloc()
says that it is safe to wait indefinitely. So this code is
inconsistent.
Clearly it is OK to wait indefinitely in this code, and
mempool_alloc() is able to do that. So just use