Lines Matching refs:cd
833 encode_entry_baggage(struct nfsd3_readdirres *cd, __be32 *p, const char *name, in encode_entry_baggage() argument
840 cd->offset = p; /* remember pointer */ in encode_entry_baggage()
847 compose_entry_fh(struct nfsd3_readdirres *cd, struct svc_fh *fhp, in compose_entry_fh() argument
854 dparent = cd->fh.fh_dentry; in compose_entry_fh()
855 exp = cd->fh.fh_export; in compose_entry_fh()
875 rv = fh_compose(fhp, exp, dchild, &cd->fh); in compose_entry_fh()
881 static __be32 *encode_entryplus_baggage(struct nfsd3_readdirres *cd, __be32 *p, const char *name, i… in encode_entryplus_baggage() argument
883 struct svc_fh *fh = &cd->scratch; in encode_entryplus_baggage()
887 err = compose_entry_fh(cd, fh, name, namlen, ino); in encode_entryplus_baggage()
893 p = encode_post_op_attr(cd->rqstp, p, fh); in encode_entryplus_baggage()
917 struct nfsd3_readdirres *cd = container_of(ccd, struct nfsd3_readdirres, in encode_entry() local
919 __be32 *p = cd->buffer; in encode_entry()
926 if (cd->offset) { in encode_entry()
929 if (unlikely(cd->offset1)) { in encode_entry()
931 *cd->offset = htonl(offset64 >> 32); in encode_entry()
932 *cd->offset1 = htonl(offset64 & 0xffffffff); in encode_entry()
933 cd->offset1 = NULL; in encode_entry()
935 xdr_encode_hyper(cd->offset, offset64); in encode_entry()
937 cd->offset = NULL; in encode_entry()
952 if (cd->buflen < elen) { in encode_entry()
953 cd->common.err = nfserr_toosmall; in encode_entry()
958 for (page = cd->rqstp->rq_respages + 1; in encode_entry()
959 page < cd->rqstp->rq_next_page; page++) { in encode_entry()
962 if (((caddr_t)cd->buffer >= curr_page_addr) && in encode_entry()
963 ((caddr_t)cd->buffer < curr_page_addr + PAGE_SIZE)) in encode_entry()
967 if ((caddr_t)(cd->buffer + elen) < (curr_page_addr + PAGE_SIZE)) { in encode_entry()
970 p = encode_entry_baggage(cd, p, name, namlen, ino); in encode_entry()
973 p = encode_entryplus_baggage(cd, p, name, namlen, ino); in encode_entry()
974 num_entry_words = p - cd->buffer; in encode_entry()
984 p1 = encode_entry_baggage(cd, p1, name, namlen, ino); in encode_entry()
987 p1 = encode_entryplus_baggage(cd, p1, name, namlen, ino); in encode_entry()
991 len1 = curr_page_addr + PAGE_SIZE - (caddr_t)cd->buffer; in encode_entry()
1000 cd->offset = cd->buffer + (cd->offset - tmp); in encode_entry()
1002 unsigned int offset_r = (cd->offset - tmp) << 2; in encode_entry()
1012 cd->offset = p + (cd->offset - tmp); in encode_entry()
1014 cd->offset -= len1 >> 2; in encode_entry()
1018 cd->offset = p + (cd->offset - tmp); in encode_entry()
1019 cd->offset1 = tmp; in encode_entry()
1032 cd->common.err = nfserr_toosmall; in encode_entry()
1036 cd->buflen -= num_entry_words; in encode_entry()
1037 cd->buffer = p; in encode_entry()
1038 cd->common.err = nfs_ok; in encode_entry()
1044 nfs3svc_encode_entry(void *cd, const char *name, in nfs3svc_encode_entry() argument
1047 return encode_entry(cd, name, namlen, offset, ino, d_type, 0); in nfs3svc_encode_entry()
1051 nfs3svc_encode_entry_plus(void *cd, const char *name, in nfs3svc_encode_entry_plus() argument
1055 return encode_entry(cd, name, namlen, offset, ino, d_type, 1); in nfs3svc_encode_entry_plus()