Oh no! I got flamed :(
I don't understand...
If you do not understand all the advice you got, just ask for clarification. If you show a willingness to improve your code, developers will usually fall over themselves to help you out. Just make sure to remove the irrelevant parts from your email, so they can focus on those parts of the email that you have questions about.
Release early, release often
The larger your project is, the higher the chance that the upstream developers will want something done in a different way. If you wait until the last moment with showing your code to the upstream developers, you will have no time left to change your code in the way required for a successful upstream merge and your project could fail.
On the other hand, if you start engaging the upstream developers while your project is still in the prototype stage, you can get their advice through a much longer time. Not only does this usually result in code that is easier to get merged into the upstream kernel, it can also lead to a good working relationship with the upstream community. Sometimes you even run into other developers wanting to achieve the same goals, and you can get their help with your project!
However, take your time to react to the feedback you received. Releasing the same thing over and over again is often counterproductive. If you post the same broken code 10 times in a row, they will not even review your code the 11th time, even if you finally fixed it then...
Words of wisdom
Back to UpstreamMerge.