Hi??

I'm currently looking into the `SlruReadSwitchPageSlow` function and have a 
question regarding the expression `&state->buf.data + bytes_read` ?? 
I suspect the ampersand (&) here might be misused. Would you be able to help me 
verify this?

```
        while (bytes_read < BLCKSZ)
        {
                ssize_t         rc;

                rc = pg_pread(state->fd,
                                          &state->buf.data + bytes_read,
                                          BLCKSZ - bytes_read,
                                          offset);
                if (rc < 0)
                {
                        if (errno == EINTR)
                                continue;
                        pg_fatal("could not read file \"%s\": %m", state->fn);
                }
                if (rc == 0)
                {
                        /* unexpected EOF */
                        pg_log(PG_WARNING, "unexpected EOF reading file \"%s\" 
at offset %u, reading as zeros",
                                   state->fn, (unsigned int) offset);
                        memset(&state->buf.data + bytes_read, 0, BLCKSZ - 
bytes_read);
                        break;
                }
                bytes_read += rc;
                offset += rc;
        }
```

```
                rc = pg_pread(state->fd,
                                          &state->buf.data + bytes_read,
                                          BLCKSZ - bytes_read,
                                          offset);
memset(&state->buf.data + bytes_read, 0, BLCKSZ - bytes_read);
```

--
Regards,
Man Zeng
www.openhalo.org

Attachment: slru_io.diff
Description: Binary data

Reply via email to