on 13/01/2014 19:02 Will Andrews said the following: > On Mon, Jan 13, 2014 at 9:44 AM, Matthew Ahrens <[email protected]> wrote: >>> I would like to understand if ZPL is going to be considered a part of >>> OpenZFS or >>> if it is supposed to be an OS-specific glue between OpenZFS and the OS. >>> Should OpenZFS ports strive to keep ZPL source code similar to illumos or >>> is this a non-goal? In particular I mean files like zfs_vnops.c, >>> zfs_vfsops.c, zfs_dir.c, zfs_acl.c, zfs_znode.c to a certain degree. >>> >> >> There is a lot of code in the ZPL that is not platform specific (e.g. SA >> infrastructure, range locking). We have talked about splitting the ZPL into >> an "upper half" that would be platform specific, and a "lower half" that >> would be used by all platforms. While I wouldn't target the ZPL for >> inclusion in the platform-independent OpenZFS repo initially, inclusion (at >> least of the "lower half") would be an long-term goal. >> >> Maybe the SA code should be a candidate for earlier inclusion, as I've seen >> a lot of bugs fixed outside illumos that have not made it to other >> platforms. >> >> All that said, use your judgement or feel free to ask about specific >> changes. > > On FreeBSD, many of the zfs vfs/vn ops are used with only a tiny > wrapper around the (in most cases nearly, and in some cases entirely) > unmodified illumos versions. This is primarily because most of the > minor differences come from the VFS API using structs as arguments, as > opposed to the elements themselves. > > So I think it would be worthwhile to keep, in OpenZFS, parts of the > upper half that are used by more than one downstream. In the longer > term, that could mean breaking them up into smaller parts that can be > reused.
Unfortunately, many things are broken in quite subtle ways because of this approach. Hence my desire to properly convert the code to FreeBSD VFS model and then "tiny wrappers" approach does not work any more. -- Andriy Gapon _______________________________________________ developer mailing list [email protected] http://lists.open-zfs.org/mailman/listinfo/developer
