"a gentle word will probably achieve more than the f-bomb"
Sometimes, but not always. I tried that approach with a developer (a Linux one, BTW), who were often at odds with his former team. I tried to "empower" him and encourage him. He just took advantage of it. He kept on being late on delivering code, and what was delivered was barely working. I tried to be kind and encouraged him to deliver better code on time, for himself and the team. He didn't.
One delivery would have been a failure if I didn't rewrite, fixed and finished his code in time. Of course, that made him even lazier, because he got away with it. I warned management about it, but nothing happened. The delivery was OK, so why take action?
The next cycle I didn't fix his code - until in a meeting it was discovered - despite my several warnings before - in three months his code wasn't finished and buggy. Just, after listening to his excuses, and be asked how to deliver in time (aka "please write you the code in time"), I lost my temper - and yelled at him.
I got a reprimand by HR, but at least he asked to be moved elsewhere, where probably he's attempting the same tricks.
I think Torvalds is luckier and works with far better developers, but sometimes you encounter people who makes you steam, and you need to let the steam go out for your health's sake.