error = zfs_znode_parent_and_name(zp, &dzp, name);
if (error == 0) {
len = strlen(name);
if (*ap->a_buflen < len)
error = SET_ERROR(ENOMEM);
}
*ap->a_buflen -= len;
bcopy(name, ap->a_buf + *ap->a_buflen, len);
*ap->a_vpp = ZTOV(dzp);
size_t len;
len = strlen(sep->se_name);
if (*ap->a_buflen < len) {
bcopy(sep->se_name, ap->a_buf + *ap->a_buflen, len);
mutex_exit(&sdp->sd_lock);
error = ENOMEM;
vref(dvp);
} else {
*ap->a_vpp = dvp;
VN_RELE(dvp);