Lines Matching full:p
29 decode_fh(__be32 *p, struct svc_fh *fhp) in decode_fh() argument
32 memcpy(&fhp->fh_handle.fh_base, p, NFS_FHSIZE); in decode_fh()
37 return p + (NFS_FHSIZE >> 2); in decode_fh()
41 __be32 *nfs2svc_decode_fh(__be32 *p, struct svc_fh *fhp) in nfs2svc_decode_fh() argument
43 return decode_fh(p, fhp); in nfs2svc_decode_fh()
47 encode_fh(__be32 *p, struct svc_fh *fhp) in encode_fh() argument
49 memcpy(p, &fhp->fh_handle.fh_base, NFS_FHSIZE); in encode_fh()
50 return p + (NFS_FHSIZE>> 2); in encode_fh()
58 decode_filename(__be32 *p, char **namp, unsigned int *lenp) in decode_filename() argument
63 if ((p = xdr_decode_string_inplace(p, namp, lenp, NFS_MAXNAMLEN)) != NULL) { in decode_filename()
70 return p; in decode_filename()
74 decode_sattr(__be32 *p, struct iattr *iap) in decode_sattr() argument
84 if ((tmp = ntohl(*p++)) != (u32)-1 && tmp != 0xffff) { in decode_sattr()
88 if ((tmp = ntohl(*p++)) != (u32)-1) { in decode_sattr()
93 if ((tmp = ntohl(*p++)) != (u32)-1) { in decode_sattr()
98 if ((tmp = ntohl(*p++)) != (u32)-1) { in decode_sattr()
102 tmp = ntohl(*p++); tmp1 = ntohl(*p++); in decode_sattr()
108 tmp = ntohl(*p++); tmp1 = ntohl(*p++); in decode_sattr()
125 return p; in decode_sattr()
129 encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp, in encode_fattr() argument
139 *p++ = htonl(nfs_ftypes[type >> 12]); in encode_fattr()
140 *p++ = htonl((u32) stat->mode); in encode_fattr()
141 *p++ = htonl((u32) stat->nlink); in encode_fattr()
142 *p++ = htonl((u32) from_kuid(&init_user_ns, stat->uid)); in encode_fattr()
143 *p++ = htonl((u32) from_kgid(&init_user_ns, stat->gid)); in encode_fattr()
146 *p++ = htonl(NFS_MAXPATHLEN); in encode_fattr()
148 *p++ = htonl((u32) stat->size); in encode_fattr()
150 *p++ = htonl((u32) stat->blksize); in encode_fattr()
152 *p++ = htonl(new_encode_dev(stat->rdev)); in encode_fattr()
154 *p++ = htonl(0xffffffff); in encode_fattr()
155 *p++ = htonl((u32) stat->blocks); in encode_fattr()
159 *p++ = htonl(new_encode_dev(stat->dev)); in encode_fattr()
162 *p++ = htonl((u32) fhp->fh_export->ex_fsid); in encode_fattr()
169 *p++ = htonl(f); in encode_fattr()
172 *p++ = htonl((u32) stat->ino); in encode_fattr()
173 *p++ = htonl((u32) stat->atime.tv_sec); in encode_fattr()
174 *p++ = htonl(stat->atime.tv_nsec ? stat->atime.tv_nsec / 1000 : 0); in encode_fattr()
177 *p++ = htonl((u32) time.tv_sec); in encode_fattr()
178 *p++ = htonl(time.tv_nsec ? time.tv_nsec / 1000 : 0); in encode_fattr()
179 *p++ = htonl((u32) stat->ctime.tv_sec); in encode_fattr()
180 *p++ = htonl(stat->ctime.tv_nsec ? stat->ctime.tv_nsec / 1000 : 0); in encode_fattr()
182 return p; in encode_fattr()
186 __be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp, struct kstat *s… in nfs2svc_encode_fattr() argument
188 return encode_fattr(rqstp, p, fhp, stat); in nfs2svc_encode_fattr()
195 nfssvc_decode_void(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_void() argument
197 return xdr_argsize_check(rqstp, p); in nfssvc_decode_void()
201 nfssvc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_fhandle() argument
205 p = decode_fh(p, &args->fh); in nfssvc_decode_fhandle()
206 if (!p) in nfssvc_decode_fhandle()
208 return xdr_argsize_check(rqstp, p); in nfssvc_decode_fhandle()
212 nfssvc_decode_sattrargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_sattrargs() argument
216 p = decode_fh(p, &args->fh); in nfssvc_decode_sattrargs()
217 if (!p) in nfssvc_decode_sattrargs()
219 p = decode_sattr(p, &args->attrs); in nfssvc_decode_sattrargs()
221 return xdr_argsize_check(rqstp, p); in nfssvc_decode_sattrargs()
225 nfssvc_decode_diropargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_diropargs() argument
229 if (!(p = decode_fh(p, &args->fh)) in nfssvc_decode_diropargs()
230 || !(p = decode_filename(p, &args->name, &args->len))) in nfssvc_decode_diropargs()
233 return xdr_argsize_check(rqstp, p); in nfssvc_decode_diropargs()
237 nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_readargs() argument
242 p = decode_fh(p, &args->fh); in nfssvc_decode_readargs()
243 if (!p) in nfssvc_decode_readargs()
246 args->offset = ntohl(*p++); in nfssvc_decode_readargs()
247 len = args->count = ntohl(*p++); in nfssvc_decode_readargs()
248 p++; /* totalcount - unused */ in nfssvc_decode_readargs()
257 struct page *p = *(rqstp->rq_next_page++); in nfssvc_decode_readargs() local
259 rqstp->rq_vec[v].iov_base = page_address(p); in nfssvc_decode_readargs()
265 return xdr_argsize_check(rqstp, p); in nfssvc_decode_readargs()
269 nfssvc_decode_writeargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_writeargs() argument
275 p = decode_fh(p, &args->fh); in nfssvc_decode_writeargs()
276 if (!p) in nfssvc_decode_writeargs()
279 p++; /* beginoffset */ in nfssvc_decode_writeargs()
280 args->offset = ntohl(*p++); /* offset */ in nfssvc_decode_writeargs()
281 p++; /* totalcount */ in nfssvc_decode_writeargs()
282 len = args->len = ntohl(*p++); in nfssvc_decode_writeargs()
293 hdr = (void*)p - head->iov_base; in nfssvc_decode_writeargs()
309 args->first.iov_base = (void *)p; in nfssvc_decode_writeargs()
315 nfssvc_decode_createargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_createargs() argument
319 if ( !(p = decode_fh(p, &args->fh)) in nfssvc_decode_createargs()
320 || !(p = decode_filename(p, &args->name, &args->len))) in nfssvc_decode_createargs()
322 p = decode_sattr(p, &args->attrs); in nfssvc_decode_createargs()
324 return xdr_argsize_check(rqstp, p); in nfssvc_decode_createargs()
328 nfssvc_decode_renameargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_renameargs() argument
332 if (!(p = decode_fh(p, &args->ffh)) in nfssvc_decode_renameargs()
333 || !(p = decode_filename(p, &args->fname, &args->flen)) in nfssvc_decode_renameargs()
334 || !(p = decode_fh(p, &args->tfh)) in nfssvc_decode_renameargs()
335 || !(p = decode_filename(p, &args->tname, &args->tlen))) in nfssvc_decode_renameargs()
338 return xdr_argsize_check(rqstp, p); in nfssvc_decode_renameargs()
342 nfssvc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_readlinkargs() argument
346 p = decode_fh(p, &args->fh); in nfssvc_decode_readlinkargs()
347 if (!p) in nfssvc_decode_readlinkargs()
351 return xdr_argsize_check(rqstp, p); in nfssvc_decode_readlinkargs()
355 nfssvc_decode_linkargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_linkargs() argument
359 if (!(p = decode_fh(p, &args->ffh)) in nfssvc_decode_linkargs()
360 || !(p = decode_fh(p, &args->tfh)) in nfssvc_decode_linkargs()
361 || !(p = decode_filename(p, &args->tname, &args->tlen))) in nfssvc_decode_linkargs()
364 return xdr_argsize_check(rqstp, p); in nfssvc_decode_linkargs()
368 nfssvc_decode_symlinkargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_symlinkargs() argument
371 char *base = (char *)p; in nfssvc_decode_symlinkargs()
374 if ( !(p = decode_fh(p, &args->ffh)) in nfssvc_decode_symlinkargs()
375 || !(p = decode_filename(p, &args->fname, &args->flen))) in nfssvc_decode_symlinkargs()
378 args->tlen = ntohl(*p++); in nfssvc_decode_symlinkargs()
382 args->first.iov_base = p; in nfssvc_decode_symlinkargs()
384 args->first.iov_len -= (char *)p - base; in nfssvc_decode_symlinkargs()
394 p = rqstp->rq_arg.tail[0].iov_base; in nfssvc_decode_symlinkargs()
399 p += xdrlen; in nfssvc_decode_symlinkargs()
401 decode_sattr(p, &args->attrs); in nfssvc_decode_symlinkargs()
407 nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p) in nfssvc_decode_readdirargs() argument
411 p = decode_fh(p, &args->fh); in nfssvc_decode_readdirargs()
412 if (!p) in nfssvc_decode_readdirargs()
414 args->cookie = ntohl(*p++); in nfssvc_decode_readdirargs()
415 args->count = ntohl(*p++); in nfssvc_decode_readdirargs()
419 return xdr_argsize_check(rqstp, p); in nfssvc_decode_readdirargs()
426 nfssvc_encode_void(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_void() argument
428 return xdr_ressize_check(rqstp, p); in nfssvc_encode_void()
432 nfssvc_encode_attrstat(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_attrstat() argument
436 p = encode_fattr(rqstp, p, &resp->fh, &resp->stat); in nfssvc_encode_attrstat()
437 return xdr_ressize_check(rqstp, p); in nfssvc_encode_attrstat()
441 nfssvc_encode_diropres(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_diropres() argument
445 p = encode_fh(p, &resp->fh); in nfssvc_encode_diropres()
446 p = encode_fattr(rqstp, p, &resp->fh, &resp->stat); in nfssvc_encode_diropres()
447 return xdr_ressize_check(rqstp, p); in nfssvc_encode_diropres()
451 nfssvc_encode_readlinkres(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_readlinkres() argument
455 *p++ = htonl(resp->len); in nfssvc_encode_readlinkres()
456 xdr_ressize_check(rqstp, p); in nfssvc_encode_readlinkres()
460 rqstp->rq_res.tail[0].iov_base = p; in nfssvc_encode_readlinkres()
461 *p = 0; in nfssvc_encode_readlinkres()
468 nfssvc_encode_readres(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_readres() argument
472 p = encode_fattr(rqstp, p, &resp->fh, &resp->stat); in nfssvc_encode_readres()
473 *p++ = htonl(resp->count); in nfssvc_encode_readres()
474 xdr_ressize_check(rqstp, p); in nfssvc_encode_readres()
480 rqstp->rq_res.tail[0].iov_base = p; in nfssvc_encode_readres()
481 *p = 0; in nfssvc_encode_readres()
488 nfssvc_encode_readdirres(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_readdirres() argument
492 xdr_ressize_check(rqstp, p); in nfssvc_encode_readdirres()
493 p = resp->buffer; in nfssvc_encode_readdirres()
494 *p++ = 0; /* no more entries */ in nfssvc_encode_readdirres()
495 *p++ = htonl((resp->common.err == nfserr_eof)); in nfssvc_encode_readdirres()
496 rqstp->rq_res.page_len = (((unsigned long)p-1) & ~PAGE_MASK)+1; in nfssvc_encode_readdirres()
502 nfssvc_encode_statfsres(struct svc_rqst *rqstp, __be32 *p) in nfssvc_encode_statfsres() argument
507 *p++ = htonl(NFSSVC_MAXBLKSIZE_V2); /* max transfer size */ in nfssvc_encode_statfsres()
508 *p++ = htonl(stat->f_bsize); in nfssvc_encode_statfsres()
509 *p++ = htonl(stat->f_blocks); in nfssvc_encode_statfsres()
510 *p++ = htonl(stat->f_bfree); in nfssvc_encode_statfsres()
511 *p++ = htonl(stat->f_bavail); in nfssvc_encode_statfsres()
512 return xdr_ressize_check(rqstp, p); in nfssvc_encode_statfsres()
521 __be32 *p = cd->buffer; in nfssvc_encode_entry() local
548 *p++ = xdr_one; /* mark entry present */ in nfssvc_encode_entry()
549 *p++ = htonl((u32) ino); /* file id */ in nfssvc_encode_entry()
550 p = xdr_encode_array(p, name, namlen);/* name length & name */ in nfssvc_encode_entry()
551 cd->offset = p; /* remember pointer */ in nfssvc_encode_entry()
552 *p++ = htonl(~0U); /* offset of next entry */ in nfssvc_encode_entry()
555 cd->buffer = p; in nfssvc_encode_entry()