- }
-
- if (pipe->nrbufs < PIPE_BUFFERS) {
- this_len = PAGE_SIZE - poff;
- if (this_len > avail)
- this_len = avail;
-
- buf->page = rbuf->page_array[pidx];
- buf->offset = poff;
- this_end = read_start + ret + this_len;
- if (this_end > nonpad_end) {
- if (read_start + ret >= nonpad_end)
- buf->len = 0;
- else
- buf->len = nonpad_end - (read_start + ret);
- } else
- buf->len = this_len;
-
- *nonpad_ret += buf->len;