osendfile() silliness

David P. Reese, Jr. daver at gomerbud.com
Mon Oct 6 02:48:34 PDT 2003

I just researched the history of osendfile().

   o Jan 2002: A bug is found in sendfile() that counts the header length
     when determining the number of bytes to send.  Thus, the file is cut
     short by the length of the headers.  A fix is committed to -CURRENT.

   o June 2002: The fix is MFC'd to 4-STABLE.

   o July 2002: In order to maintain binary compatibility, bug-for-bug
     compativle versions of the sendfile() syscall are added to both
     -STABLE and -CURRENT.

The problem:

   While the compatibility syscall added to -CURRENT was placed in an
   #ifdef COMPAT_FREEBSD4 block and aptly named freebsd4_sendfile(),
   the version MFC'd to -STABLE the same day was placed in an #ifdef
   COMPAT_43 block and named osendfile().

Should I just forget about osendfile()?  It clearly does not belong in
emulators/43bsd.  I think I'll write a little note in a comment next to
the native syscall about the fix and nuke osendfile().  Any objections?

   David P. Reese, Jr.                                     daver at xxxxxxxxxxxx

More information about the Kernel mailing list