rem: p->d_ino = st.st_ino;
add: p->d_ino = st.ino;
context: sys_readdir(bool kernel, int fd, struct my_dirent *buf, size_t bufsize,        long count){    ofile            *f;    int               err;    vnode            *vn;    struct my_dirent *p;    struct my_stat    st;    long              i;    nspace_id         nsid;    vnode_id          vnid;    long              nm;    f = get_fd(kernel, fd, FD_DIR);    if (!f) {        err = EBADF;        goto error1;    }    vn = f->vn;    nm = count;    err = (*vn->ns->fs->ops.readdir)(vn->ns->data, vn->data, f->cookie,            &nm, buf, bufsize);    if (err)        goto error1;    /*    patch the mount points and the root.    */    LOCK(vnlock);    nsid = vn->ns->nsid;    p = buf;    for(i=0; i<nm; i++) {        if (is_mount_vnid(nsid, p->d_ino, &vnid))            p->d_ino = vnid;        if (vn->ns->mount && !strcmp(p->d_name, "..")) {            UNLOCK(vnlock);            err = sys_rstat(kernel, fd, "..", &st, FALSE);            if (err)                goto error2;            LOCK(vnlock);            p->d_ino = st.st_ino;        }        p = (struct my_dirent *) ((char *) p + p->d_reclen);    }    UNLOCK(vnlock);    put_fd(f);    return nm;error2:    put_fd(f);error1:    return err;}