Mercurial > illumos > illumos-gate
changeset 6570:bbfcb773718e
6698415 on zfs root, ace_walk oversteps its bounds, causing panic when kmem_flags is set to 0x4f
6698707 zfs_mountroot() shouldn't release rootvp
author | marks |
---|---|
date | Wed, 07 May 2008 14:09:56 -0700 |
parents | 90c99f858ba3 |
children | 87a1002a7f3b |
files | usr/src/common/acl/acl_common.c usr/src/uts/common/fs/zfs/zfs_vfsops.c |
diffstat | 2 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/common/acl/acl_common.c Wed May 07 11:05:00 2008 -0700 +++ b/usr/src/common/acl/acl_common.c Wed May 07 14:09:56 2008 -0700 @@ -293,14 +293,14 @@ { ace_t *acep = datap; + if (cookie >= aclcnt) + return (0); + *flags = acep[cookie].a_flags; *type = acep[cookie].a_type; *mask = acep[cookie++].a_access_mask; - if (cookie > aclcnt) - return (0); - else - return (cookie); + return (cookie); } int
--- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c Wed May 07 11:05:00 2008 -0700 +++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c Wed May 07 14:09:56 2008 -0700 @@ -930,10 +930,8 @@ rootvp = vp; /* - * The zfs_zget call above returns with a hold on vp, we release - * it here. + * Leave rootvp held. The root file system is never unmounted. */ - VN_RELE(vp); vfs_add((struct vnode *)0, vfsp, (vfsp->vfs_flag & VFS_RDONLY) ? MS_RDONLY : 0);