Date: Mon, 1 Jul 2024 09:40:15 +0100 From: David Chisnall <theraven@FreeBSD.org> To: FreeBSD Current <freebsd-current@freebsd.org> Subject: Please can we do something about programmatic interfaces to ZFS? Message-ID: <8C7859E3-A72E-4852-AF43-DFD0ABA5D270@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
Hi, Since updating to 15-CURRENT, I have been unable to get some existing = code that used libzfs_core to take snapshots. There are a lot of = reasons that this could have broken and it=E2=80=99s hard to track it = down: - We ship both libnv and libnvpair. These define the same data = structure but with different APIs and are incompatible. I believe libnv = can create the serialised data structures that the ZFS ioctls expect. - We don=E2=80=99t install headers for libnvpair or libzfs_core (or = libzfs) and so any code using these has to either depend on things in = the src tree (which depend on OpenSolaris headers that are incompatible = with FreeBSD ones, so must be in separate compilation units) or provide = its own definitions, which may get out of sync with the libraries. - We don=E2=80=99t provide any documentation of the underlying ZFS = ioctls (and there is some code that suggests that these vary between = platforms), and so the *only* API for interacting with ZFS is = libzfs_core. - The APIs in libzfs_core are also poorly documented. This makes it incredibly difficult to interact with ZFS via anything = other than the `zfs` command-line tool. When things break, I have no = idea which of these layers caused the breakage. David
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8C7859E3-A72E-4852-AF43-DFD0ABA5D270>