rem: err = -EPROTO;
add: err = -EIO;
context: static int sshfs_getdir(const char *path, fuse_cache_dirh_t h,                        fuse_cache_dirfil_t filler){    int err;    struct buffer buf;    struct buffer handle;    buf_init(&buf, 0);    buf_add_path(&buf, path);    err = sftp_request(SSH_FXP_OPENDIR, &buf, SSH_FXP_HANDLE, &handle);    if (!err) {        int err2;        buf_finish(&handle);        do {            struct buffer name;            err = sftp_request(SSH_FXP_READDIR, &handle, SSH_FXP_NAME, &name);            if (!err) {                if (buf_get_entries(&name, h, filler) == -1)                    err = -EPROTO;                buf_free(&name);            }        } while (!err);        if (err == MY_EOF)            err = 0;        err2 = sftp_request(SSH_FXP_CLOSE, &handle, 0, NULL);        if (!err)            err = err2;        buf_free(&handle);    }    buf_free(&buf);    return err;}