rem: err = EINVAL;
add: err = FS_EINVAL;
context: sys_symlink(bool kernel, const char *oldpath, int nfd, const char *newpath){    int             err;    char            filename[FILE_NAME_LENGTH];    char            *buf;    vnode           *dvn;    op_symlink      *op;    err = get_dir_fd(kernel, nfd, newpath, filename, &dvn);    if (err)        goto error1;    err = new_path(oldpath, &buf);    if (err)        goto error2;    op = dvn->ns->fs->ops.symlink;    if (!op) {        err = EINVAL;        goto error3;    }    err = (*op)(dvn->ns->data, dvn->data, filename, buf);    if (err)        goto error3;    dec_vnode(dvn, FALSE);    free_path(buf);    return 0;error3:    free_path(buf);error2:    dec_vnode(dvn, FALSE);error1:    return err;}