Syscalls are mostly the same, but indeed, the interface between the kernel and the file systems is very different. However, code which implements that interface on the file system is a relatively small part of the whole thing; most of the code should be reusable.
Historical note: FreeBSD used to support XFS; I believe it was ported from Linux.
True. Although it’s way easier than it used to be, thanks to linuxkpi layer - the piece of FreeBSD kernel which implements various Linux kernel APIs.
Historical note: FreeBSD used to support XFS; I believe it was ported from Linux.