Lines Matching defs:read
588 /* Nothing to read */
1121 nfsd4_decode_read(struct nfsd4_compoundargs *argp, struct nfsd4_read *read)
1125 status = nfsd4_decode_stateid(argp, &read->rd_stateid);
1129 p = xdr_decode_hyper(p, &read->rd_offset);
1130 read->rd_length = be32_to_cpup(p++);
1884 * read or write. However, the size of extended attributes is limited
3768 struct nfsd4_read *read,
3782 nfserr = nfsd_splice_read(read->rd_rqstp, read->rd_fhp,
3783 file, read->rd_offset, &maxcount, &eof);
3784 read->rd_length = maxcount;
3826 struct nfsd4_read *read,
3836 read->rd_vlen = xdr_reserve_space_vec(xdr, resp->rqstp->rq_vec, maxcount);
3837 if (read->rd_vlen < 0)
3840 nfserr = nfsd_readv(resp->rqstp, read->rd_fhp, file, read->rd_offset,
3841 resp->rqstp->rq_vec, read->rd_vlen, &maxcount,
3843 read->rd_length = maxcount;
3865 struct nfsd4_read *read)
3875 file = read->rd_nf->nf_file;
3892 maxcount = min_t(unsigned long, maxcount, read->rd_length);
3896 nfserr = nfsd4_encode_splice_read(resp, read, file, maxcount);
3898 nfserr = nfsd4_encode_readv(resp, read, file, maxcount);
4616 struct nfsd4_read *read,
4621 struct file *file = read->rd_nf->nf_file;
4628 hole_pos = pos ? *pos : vfs_llseek(file, read->rd_offset, SEEK_HOLE);
4629 if (hole_pos > read->rd_offset)
4630 *maxcount = min_t(unsigned long, *maxcount, hole_pos - read->rd_offset);
4638 read->rd_vlen = xdr_reserve_space_vec(xdr, resp->rqstp->rq_vec, *maxcount);
4639 if (read->rd_vlen < 0)
4642 nfserr = nfsd_readv(resp->rqstp, read->rd_fhp, file, read->rd_offset,
4643 resp->rqstp->rq_vec, read->rd_vlen, maxcount, eof);
4650 tmp64 = cpu_to_be64(read->rd_offset);
4663 struct nfsd4_read *read,
4666 struct file *file = read->rd_nf->nf_file;
4667 loff_t data_pos = vfs_llseek(file, read->rd_offset, SEEK_DATA);
4674 else if (data_pos <= read->rd_offset || (data_pos < f_size && data_pos % PAGE_SIZE))
4675 return nfsd4_encode_read_plus_data(resp, read, maxcount, eof, &f_size);
4676 count = data_pos - read->rd_offset;
4684 p = xdr_encode_hyper(p, read->rd_offset);
4687 *eof = (read->rd_offset + count) >= f_size;
4694 struct nfsd4_read *read)
4709 file = read->rd_nf->nf_file;
4720 maxcount = min_t(unsigned long, maxcount, read->rd_length);
4723 eof = read->rd_offset >= i_size_read(file_inode(file));
4727 pos = vfs_llseek(file, read->rd_offset, SEEK_HOLE);
4728 is_data = pos > read->rd_offset;
4733 nfserr = nfsd4_encode_read_plus_data(resp, read, &maxcount, &eof,
4736 nfserr = nfsd4_encode_read_plus_hole(resp, read, &maxcount, &eof);
4740 read->rd_offset += maxcount;