Duff,
You should resync with Lin Ling's putback for: PSARC 2007/342 "Enhanced ZFS
Pool Properties" from this morning. It substantially changes the way the
pool properties are implemented, and should make implementing a new pool
property much easier. (Also note, I fixed particular nastyness that you hit
as part of 6582456 "property code is overdue for some spring cleaning" on
August 2.)
What new pool properties are you working on?
--matt
J Duff wrote:
> I?m trying to add a new zpool property to the ZFS code base, but I am
> confused by the mismatched lengths of zfs_prop_t and zfs_prop_table. For
> more details, read on?
>
> In the file usr/src/uts/common/sys/fs/zfs.h, I add a new value to the
> zfs_prop_t enum. The comment at the beginning of zfs_prop_t states that I
> must add my new property to the end of the enum in order to ?ensure that
> external consumers are not affected by the change?. I assume this means
> that some users of zfs.h might not be recompiled, and so I should not
> disrupt the existing enum values for zfs_prop_t. So, I add my new
> property, ZPOOL_PROP_NEWPROP, to the end of the zfs_prop_t, i.e., after
> ZPOOL_PROP_NAME.
>
> The comment at the beginning of zfs_prop_t also states that I must update
> zfs_prop_table in usr/src/common/zfs/zfs_prop.c. However, zfs_prop_table
> has entries for all zfs and zpool properties except for ZPOOL_PROP_NAME.
> If I add a zfs_prop_table entry for ZPOOL_PROP_NEWPROP, its table index
> will not match the ZPOOL_PROP_NEWPROP enum and hence will cause the
> property code to break.
>
> Should I add ZPOOL_PROP_NEWPROP just before ZPOOL_PROP_NAME in
> zfs_prop_table and not at the end of the enum as the comment states? This
> would result in generating the proper zfs_prop_table index. Also, I can?t
> find a place where ZPOOL_PROP_NAME is actually used to index into
> zfs_prop_table so the missing zfs_prop_table entry may be tolerable.
> However, ZPOOL_PROP_NAME is used in
> usr/src/lib/libzfs/common/libzfs_pool.c, and if I change its enum value, I
> will have to rebuild it and all its users.
>
> In order to complete the task of adding a new pool property, I will have
> to re-build not only the kernel, but also modify and rebuild the zpool
> executable. Are there other executables that I will have to rebuild?
>
> Duff -- This messages posted from opensolaris.org
> ___ zfs-code mailing list
> zfs-code at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-code