To take part in opensource, especially a big project like Linux you have to be willing to put yourself out there a little bit. You have to put in some work, and then put something out there to possibly (probably?) be crapped on by people you respect. They might love it and merge it, they might hate it and tell you why, they might come back somewhere in the middle with a list of things to change that you may or may not agree with. They might ask you questions you can't answer, they might point things out that make you feel really silly. That element of risk is something many computer people have a hard time with, not just women or minorities.
I got involved with the kernel a long while back, sent in a couple smallish things. Then I found what seemed like plutonium, the embedded project I was working on, we were literally spending like 1/3 or our cycles zeroing pages. Did some stuff to use MMX like instructions to do it and got a nice little bump. Turned if off entirely and got a huge bump. I/O took off like a rocket, all sorts of things got noticeably faster; like we were able to double what our project had to do. I had a more senior Linux guy coaching me up on this, a made man in the community, it was late one night when we discovered this so I put together some patches and sent if off to Linus, he was encouraging it. Linus was quiet for about a day and then sent back some pointed observations and was kind of making fun of me. Zeroing newly allocated pages is kind of important, it's a security risk to not do it and it happens for a reason. I felt like a total newb, and Linus had poked fun at me in an email, it didn't feel good. The made guy I was working with sort of picked me up, told me he does that to everybody and that it's good natured ribbing for the most part but before that I had just felt like crap. This guy I respect the hell out of was making fun of my contribution, I got over it pretty easily but I could easily see how others might not.
There have been some fairly popular contributors (or maybe not, I don't know..) over the years that have basically managed their own forks with various patches (Con Kolivas' scheduler stuff stands out to me) because for whatever reasons they couldn't or wouldn't get stuff merged or accepted, even though it seemed to be really useful and appealing to a lot of others. In the heat of it all, it can seem really arbitrary too, you put some code together, you know it solves some problems and the community of developers doesn't want it or won't take it.
Not sure what caused Linus to recognize it this time but I hope things improve, it's better for everyone.