rem: return EINVAL;
add: return FS_EINVAL;
context: readv_pos(int fd, fs_off_t _pos, struct iovec *iov, int count){    off_t  pos = (off_t)_pos;    size_t amt = 0;    ssize_t ret;    struct iovec *tmpiov;    int i, n;    if (lseek(fd, pos, SEEK_SET) < 0) {        perror("read lseek");        return EINVAL;    }    i = 0;    tmpiov = iov;    while (i < count) {        if (i + MAX_IOV < count)            n = MAX_IOV;        else            n = (count - i);        ret = readv(fd, tmpiov, n);        amt += ret;        if (ret < 0)            break;        i += n;        tmpiov += n;    }    return amt;}