Created attachment 204675 [details]
Add st_birthtime support to FUSEFS backwards-incompatibly
The FUSE protocol does not support chflags(2) at all, and the FUSE_GETATTR and FUSE_SETATTR messages have no fields for st_birthtime. This is a direct result of its Linux-only origins. OSXFuse extended the protocol to add those features (and others), but they had to fork libfuse to do it. FreeBSD has thus far had a policy of no changes to libfuse. Even if we were to abandon that policy, we can't add chflags and st_birthtime support without bumping the FUSE kernel API version past the most recently published version in libfuse. The reason is because libfuse includes its own copy of the kernel API header. Changing the FUSE protocol without reving the kernel API past what is already published by libfuse would thus break existing binaries.
Attached is a patch that adds st_birthtime support to fusefs(5). However, it adds it at protocol version 7.9, so it breaks compatibility with existing binaries. The patch also includes some OSX definitions. I thought that including them would make it easier to update libfuse.
Can you post the patch on phabricator?