[...] Somehow I nipped into your blog. Then I skimmed your latest post from linux category and there was this part I want to comment on a bit: > Strangely, sendfile() works on regular files in the default Debian > Squeeze Kernel (2.6.32-5) without problems. I noticed once that one commit in Linux v2.6.x was restoring sendfile() feature known from v2.4.x, i.e. that output fd can be a file. The mentioned commit is: http://git.kernel.org/linus/cc56f7de7f00d188c7c4da1e9861581853b9e92f and it is in Linux since v2.6.33-rc1 (2009-12-18) or actually I should write v2.6.33 (2010-02-25) as this one was the final release. But I noticed that much later (almost one year later) and shortly upon finding this out I sent the patch to stable@kernel.org (2011-02-11) for inclusion in v2.6.32.y, which was heavily deployed longterm Linux version back then. http://thread.gmane.org/gmane.linux.kernel.stable/3699 I wasn't sure whether Greg KH will accept the patch, but as it was a real fix and "enhanced" sendfile was only a net effect (stable kernels usually does not add features), the chances were pretty high IMHO. 5 days later Greg queued it up. The commit finally shown up in linux-2.6.32.y branch as 2d7b204f and first stable release it became part of was v2.6.32.30 (2011-03-02). To highlight this new sendfile() feature I left a comment on LWN.net under Stable kernel 2.6.32.30 post: http://lwn.net/Articles/430624/ [...] It's worth to add now that sendfile() in stable was a bit broken until v2.6.32.47 (2011-11-08) [and in mainline until v2.6.35 (2010-08-02) or v2.6.35-rc5 (2010-07-13) to be precise]. Debian bug report illustrates it neatly: http://bugs.debian.org/641419 The upstream commit fixing it is: http://git.kernel.org/linus/2cb4b05e7647891b46b91c07c9a60304803d1688 and it shown up in linux-2.6.32.y branch as b81cbf89. I guess I'm part to blame, because when I checked 2.6.32.y branch with cc56f7de cherry picked on top of it, I didn't perform thorough tests, because then I would notice that some additional patch(es) are needed for correct work. As you can see here: https://lkml.org/lkml/2010/7/8/155 (2010-07-08) The patch was indeed marked for stable, but way before I sent cc56f7de for v2.6.32. [...] While the release of kernel with properly working sendfile() didn't happen until v2.6.35 (2010-08-02), it did show up similarly fast only in one other stable kernel, i.e. v2.6.34.2 (2010-08-03). Branches other than linux-2.6.34.y didn't got it back then -- actually only linux-2.6.33.y was lacking, as cc56f7de hasn't been sent to 2.6.32 yet. 2.6.33 was finally fixed at the same time as 2.6.32, becoming available as v2.6.33.20 (2011-11-08), which was the last release of 2.6.33 line. It only shows that I wasn't the only one overlooking 2cb4b05e when sending cc56f7de for v2.6.32, because even 2.6.33 lacked it for more than a year. Maintaining older versions of software is simply tough, even more when we're dealing with things as complex as kernel of the operating system.