Hi all, Let's fix all the xfs read/get buffer functions to return the usual integer error codes and pass the buffer pointer as a out-argument. This makes it so that we can return useful error output instead of making callers infer ENOMEM or EAGAIN or whatever other reality they crave from the NULL pointer that they get when things don't go perfectly. FWIW, all XBF_TRYLOCK callers must now trigger retries if they receive EAGAIN. This may lead to a slight behavioral change in that TRYLOCK callers will no longer retry for things like ENOMEM, though I didn't see any obvious changes in user-visible behavior when running fstests. After finishing the error code conversion, we straighten out the TRYLOCK callers to remove all this null pointer checks in favor of explicit EAGAIN checks; and then we change the buffer IO/corruption error reporting so that we report whoever called the buffer code even when reading a buffer in transaction context. In v5 of this series I rearranged some of the patches so that the return type conversions go from the lower levels of the buffer code upwards. This eases some of the awkward warts of previous submissions. This has been lightly tested with fstests. Enjoy! Comments and questions are, as always, welcome. --D