--- src/sys/vfs/gnu/ext2fs/ext2_vnops.c 2006/04/07 06:38:30 1.29 +++ src/sys/vfs/gnu/ext2fs/ext2_vnops.c 2006/04/27 08:19:29 1.30 @@ -1099,7 +1099,7 @@ ext2_symlink(struct vop_old_symlink_args bcopy(ap->a_target, (char *)ip->i_shortlink, len); ip->i_size = len; ip->i_flag |= IN_CHANGE | IN_UPDATE; - } else + } else { /* * Make sure we have a VM object in order to use * the buffer cache. @@ -1110,6 +1110,8 @@ ext2_symlink(struct vop_old_symlink_args error = vn_rdwr(UIO_WRITE, vp, ap->a_target, len, (off_t)0, UIO_SYSSPACE, IO_NODELOCKED, ap->a_cnp->cn_cred, (int *)0, NULL); + } + if (error) vput(vp); return (error);