[CFT] ZFS v15 patch (version 3)
Sam Fourman Jr.
sfourman at gmail.com
Wed Jul 7 19:51:59 UTC 2010
2010/7/5 Martin Matuska <mm at freebsd.org>:
> Dear FreeBSD community,
>
> there has been a ZFS-related discussion at the meetBSD conference in
> Krakow, Poland and we agreed to push ZFS version 15 (and not 16) to
> -CURRENT.
>
> An upgrade to version 16 gives us no valuable features (to be true, no
> features at all besides ability to import v16 pools).
> As ZFS v15 is already being used in the Solaris 10 enterprise world, we
> can consider it well-tested.
>
> The goal is to provide a filesystem compatible with Solaris 10 update 8,
> which may attract new users to FreeBSD.
> Existing users will get the userquota/groupquota features for ZFS and be
> able to import Solaris 10 update 8 pools.
>
> Import was done by walking through the path of bugfixes from Solaris 10,
> including pre-v15 bugfixes and almost all post-v15 bugfixes.
> Few patches are irrelevant to our code (Solaris-specific features) or
> modify the zvol part, these have been left out.
>
> I have prepared a new patch that includes almost all revision numbers
> Solaris 10 has integrated (we have several of the revisions already in
> our tree).
> Patch also includes updated manpages and may be considered as a
> candidate for head.
>
> Link to the patch information file, including all imported revisions,
> bug-ids and reference to Solairis 10 patch numbers:
> http://people.freebsd.org/~mm/patches/zfs/v15/head-v15-v3.html
> http://people.freebsd.org/~mm/patches/zfs/v15/head-v15-v3.txt
>
> Direct link to the patch:
> http://people.freebsd.org/~mm/patches/zfs/v15/head-v15-v3.patch
>
> The patch applies cleanly against head and stable/8.
using head from 3 hours ago, this patch does not apply cleanly
http://people.freebsd.org/~mm/patches/zfs/v15/head-v15-v3-extension.patch
FNFS# cat sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c.rej
***************
*** 529,540 ****
if ((flag & (FSYNC | FDSYNC)) && (count == 1))
atomic_dec_32(&zp->z_sync_cnt);
- /*
- * Clean up any locks held by this process on the vp.
- */
- cleanlocks(vp, ddi_get_pid(), 0);
- cleanshares(vp, ddi_get_pid());
-
if (!zfs_has_ctldir(zp) && zp->z_zfsvfs->z_vscan &&
ZTOV(zp)->v_type == VREG &&
!(zp->z_phys->zp_flags & ZFS_AV_QUARANTINED) &&
--- 535,540 ----
if ((flag & (FSYNC | FDSYNC)) && (count == 1))
atomic_dec_32(&zp->z_sync_cnt);
if (!zfs_has_ctldir(zp) && zp->z_zfsvfs->z_vscan &&
ZTOV(zp)->v_type == VREG &&
!(zp->z_phys->zp_flags & ZFS_AV_QUARANTINED) &&
***************
*** 1055,1060 ****
&acl_ids)) != 0)
goto out;
if (zfs_acl_ids_overquota(zfsvfs, &acl_ids)) {
error = EDQUOT;
goto out;
}
--- 1101,1107 ----
&acl_ids)) != 0)
goto out;
if (zfs_acl_ids_overquota(zfsvfs, &acl_ids)) {
+ zfs_acl_ids_free(&acl_ids);
error = EDQUOT;
goto out;
}
***************
*** 2208,2213 ****
return (error);
}
if (zfs_acl_ids_overquota(zfsvfs, &acl_ids)) {
zfs_dirent_unlock(dl);
ZFS_EXIT(zfsvfs);
return (EDQUOT);
--- 2243,2249 ----
return (error);
}
if (zfs_acl_ids_overquota(zfsvfs, &acl_ids)) {
+ zfs_acl_ids_free(&acl_ids);
zfs_dirent_unlock(dl);
ZFS_EXIT(zfsvfs);
return (EDQUOT);
***************
*** 3373,3382 ****
if (attrzp)
VN_RELE(ZTOV(attrzp));
- if (aclp) {
zfs_acl_free(aclp);
- aclp = NULL;
- }
if (fuidp) {
zfs_fuid_info_free(fuidp);
--- 3412,3419 ----
if (attrzp)
VN_RELE(ZTOV(attrzp));
+ if (aclp)
zfs_acl_free(aclp);
if (fuidp) {
zfs_fuid_info_free(fuidp);
FNFS#
--
Sam Fourman Jr.
Fourman Networks
http://www.fourmannetworks.com
More information about the freebsd-current
mailing list