The return statement code in InMemoryFileSystem.reserveSpaceWithCheckSum looks like
return (mfs.reserveSpace(f, size) && mfs.reserveSpace(getChecksumFile(f), checksumSize));
This should be broken up to check for successful reserveSpace for each of the components. In some cases, we might reserve space for the first component and fail while doing the same for the second (checksum file). This will lead to wastage of space since we don't un-reserve the space we got for the first component. This usually won't happen due to the policy associated with creating a file in the InMemoryFileSystem (since the checksum component is usually very small) but still it should be fixed.