short functions like fdatasync could be declared inline int fdatasync (int fildes) { return fsync (fildes); }
We do this already for functions where it is possible to do so and makes sense, e.g. for some math functions. Such short functions need both an inline function as well as a real implementation. fdatasync is in no way performance critical and the overhead of duplicating the function does not deserve this extra work.