diff options
Diffstat (limited to 'fs/nfsd/nfs3xdr.c')
-rw-r--r-- | fs/nfsd/nfs3xdr.c | 74 |
1 files changed, 43 insertions, 31 deletions
diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c index 7fd361a75287..be8bf8af9917 100644 --- a/fs/nfsd/nfs3xdr.c +++ b/fs/nfsd/nfs3xdr.c | |||
@@ -273,8 +273,10 @@ void fill_post_wcc(struct svc_fh *fhp) | |||
273 | * XDR decode functions | 273 | * XDR decode functions |
274 | */ | 274 | */ |
275 | int | 275 | int |
276 | nfs3svc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p, struct nfsd_fhandle *args) | 276 | nfs3svc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p) |
277 | { | 277 | { |
278 | struct nfsd_fhandle *args = rqstp->rq_argp; | ||
279 | |||
278 | p = decode_fh(p, &args->fh); | 280 | p = decode_fh(p, &args->fh); |
279 | if (!p) | 281 | if (!p) |
280 | return 0; | 282 | return 0; |
@@ -282,9 +284,10 @@ nfs3svc_decode_fhandle(struct svc_rqst *rqstp, __be32 *p, struct nfsd_fhandle *a | |||
282 | } | 284 | } |
283 | 285 | ||
284 | int | 286 | int |
285 | nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, __be32 *p, | 287 | nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, __be32 *p) |
286 | struct nfsd3_sattrargs *args) | ||
287 | { | 288 | { |
289 | struct nfsd3_sattrargs *args = rqstp->rq_argp; | ||
290 | |||
288 | p = decode_fh(p, &args->fh); | 291 | p = decode_fh(p, &args->fh); |
289 | if (!p) | 292 | if (!p) |
290 | return 0; | 293 | return 0; |
@@ -300,9 +303,10 @@ nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, __be32 *p, | |||
300 | } | 303 | } |
301 | 304 | ||
302 | int | 305 | int |
303 | nfs3svc_decode_diropargs(struct svc_rqst *rqstp, __be32 *p, | 306 | nfs3svc_decode_diropargs(struct svc_rqst *rqstp, __be32 *p) |
304 | struct nfsd3_diropargs *args) | ||
305 | { | 307 | { |
308 | struct nfsd3_diropargs *args = rqstp->rq_argp; | ||
309 | |||
306 | if (!(p = decode_fh(p, &args->fh)) | 310 | if (!(p = decode_fh(p, &args->fh)) |
307 | || !(p = decode_filename(p, &args->name, &args->len))) | 311 | || !(p = decode_filename(p, &args->name, &args->len))) |
308 | return 0; | 312 | return 0; |
@@ -311,9 +315,10 @@ nfs3svc_decode_diropargs(struct svc_rqst *rqstp, __be32 *p, | |||
311 | } | 315 | } |
312 | 316 | ||
313 | int | 317 | int |
314 | nfs3svc_decode_accessargs(struct svc_rqst *rqstp, __be32 *p, | 318 | nfs3svc_decode_accessargs(struct svc_rqst *rqstp, __be32 *p) |
315 | struct nfsd3_accessargs *args) | ||
316 | { | 319 | { |
320 | struct nfsd3_accessargs *args = rqstp->rq_argp; | ||
321 | |||
317 | p = decode_fh(p, &args->fh); | 322 | p = decode_fh(p, &args->fh); |
318 | if (!p) | 323 | if (!p) |
319 | return 0; | 324 | return 0; |
@@ -323,9 +328,9 @@ nfs3svc_decode_accessargs(struct svc_rqst *rqstp, __be32 *p, | |||
323 | } | 328 | } |
324 | 329 | ||
325 | int | 330 | int |
326 | nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p, | 331 | nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p) |
327 | struct nfsd3_readargs *args) | ||
328 | { | 332 | { |
333 | struct nfsd3_readargs *args = rqstp->rq_argp; | ||
329 | unsigned int len; | 334 | unsigned int len; |
330 | int v; | 335 | int v; |
331 | u32 max_blocksize = svc_max_payload(rqstp); | 336 | u32 max_blocksize = svc_max_payload(rqstp); |
@@ -356,9 +361,9 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p, | |||
356 | } | 361 | } |
357 | 362 | ||
358 | int | 363 | int |
359 | nfs3svc_decode_writeargs(struct svc_rqst *rqstp, __be32 *p, | 364 | nfs3svc_decode_writeargs(struct svc_rqst *rqstp, __be32 *p) |
360 | struct nfsd3_writeargs *args) | ||
361 | { | 365 | { |
366 | struct nfsd3_writeargs *args = rqstp->rq_argp; | ||
362 | unsigned int len, v, hdr, dlen; | 367 | unsigned int len, v, hdr, dlen; |
363 | u32 max_blocksize = svc_max_payload(rqstp); | 368 | u32 max_blocksize = svc_max_payload(rqstp); |
364 | struct kvec *head = rqstp->rq_arg.head; | 369 | struct kvec *head = rqstp->rq_arg.head; |
@@ -416,9 +421,10 @@ nfs3svc_decode_writeargs(struct svc_rqst *rqstp, __be32 *p, | |||
416 | } | 421 | } |
417 | 422 | ||
418 | int | 423 | int |
419 | nfs3svc_decode_createargs(struct svc_rqst *rqstp, __be32 *p, | 424 | nfs3svc_decode_createargs(struct svc_rqst *rqstp, __be32 *p) |
420 | struct nfsd3_createargs *args) | ||
421 | { | 425 | { |
426 | struct nfsd3_createargs *args = rqstp->rq_argp; | ||
427 | |||
422 | if (!(p = decode_fh(p, &args->fh)) | 428 | if (!(p = decode_fh(p, &args->fh)) |
423 | || !(p = decode_filename(p, &args->name, &args->len))) | 429 | || !(p = decode_filename(p, &args->name, &args->len))) |
424 | return 0; | 430 | return 0; |
@@ -438,10 +444,12 @@ nfs3svc_decode_createargs(struct svc_rqst *rqstp, __be32 *p, | |||
438 | 444 | ||
439 | return xdr_argsize_check(rqstp, p); | 445 | return xdr_argsize_check(rqstp, p); |
440 | } | 446 | } |
447 | |||
441 | int | 448 | int |
442 | nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, __be32 *p, | 449 | nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, __be32 *p) |
443 | struct nfsd3_createargs *args) | ||
444 | { | 450 | { |
451 | struct nfsd3_createargs *args = rqstp->rq_argp; | ||
452 | |||
445 | if (!(p = decode_fh(p, &args->fh)) || | 453 | if (!(p = decode_fh(p, &args->fh)) || |
446 | !(p = decode_filename(p, &args->name, &args->len))) | 454 | !(p = decode_filename(p, &args->name, &args->len))) |
447 | return 0; | 455 | return 0; |
@@ -451,9 +459,9 @@ nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, __be32 *p, | |||
451 | } | 459 | } |
452 | 460 | ||
453 | int | 461 | int |
454 | nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, __be32 *p, | 462 | nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, __be32 *p) |
455 | struct nfsd3_symlinkargs *args) | ||
456 | { | 463 | { |
464 | struct nfsd3_symlinkargs *args = rqstp->rq_argp; | ||
457 | unsigned int len, avail; | 465 | unsigned int len, avail; |
458 | char *old, *new; | 466 | char *old, *new; |
459 | struct kvec *vec; | 467 | struct kvec *vec; |
@@ -503,9 +511,10 @@ nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, __be32 *p, | |||
503 | } | 511 | } |
504 | 512 | ||
505 | int | 513 | int |
506 | nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, __be32 *p, | 514 | nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, __be32 *p) |
507 | struct nfsd3_mknodargs *args) | ||
508 | { | 515 | { |
516 | struct nfsd3_mknodargs *args = rqstp->rq_argp; | ||
517 | |||
509 | if (!(p = decode_fh(p, &args->fh)) | 518 | if (!(p = decode_fh(p, &args->fh)) |
510 | || !(p = decode_filename(p, &args->name, &args->len))) | 519 | || !(p = decode_filename(p, &args->name, &args->len))) |
511 | return 0; | 520 | return 0; |
@@ -525,9 +534,10 @@ nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, __be32 *p, | |||
525 | } | 534 | } |
526 | 535 | ||
527 | int | 536 | int |
528 | nfs3svc_decode_renameargs(struct svc_rqst *rqstp, __be32 *p, | 537 | nfs3svc_decode_renameargs(struct svc_rqst *rqstp, __be32 *p) |
529 | struct nfsd3_renameargs *args) | ||
530 | { | 538 | { |
539 | struct nfsd3_renameargs *args = rqstp->rq_argp; | ||
540 | |||
531 | if (!(p = decode_fh(p, &args->ffh)) | 541 | if (!(p = decode_fh(p, &args->ffh)) |
532 | || !(p = decode_filename(p, &args->fname, &args->flen)) | 542 | || !(p = decode_filename(p, &args->fname, &args->flen)) |
533 | || !(p = decode_fh(p, &args->tfh)) | 543 | || !(p = decode_fh(p, &args->tfh)) |
@@ -538,9 +548,10 @@ nfs3svc_decode_renameargs(struct svc_rqst *rqstp, __be32 *p, | |||
538 | } | 548 | } |
539 | 549 | ||
540 | int | 550 | int |
541 | nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, | 551 | nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p) |
542 | struct nfsd3_readlinkargs *args) | ||
543 | { | 552 | { |
553 | struct nfsd3_readlinkargs *args = rqstp->rq_argp; | ||
554 | |||
544 | p = decode_fh(p, &args->fh); | 555 | p = decode_fh(p, &args->fh); |
545 | if (!p) | 556 | if (!p) |
546 | return 0; | 557 | return 0; |
@@ -552,9 +563,10 @@ nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, | |||
552 | } | 563 | } |
553 | 564 | ||
554 | int | 565 | int |
555 | nfs3svc_decode_linkargs(struct svc_rqst *rqstp, __be32 *p, | 566 | nfs3svc_decode_linkargs(struct svc_rqst *rqstp, __be32 *p) |
556 | struct nfsd3_linkargs *args) | ||
557 | { | 567 | { |
568 | struct nfsd3_linkargs *args = rqstp->rq_argp; | ||
569 | |||
558 | if (!(p = decode_fh(p, &args->ffh)) | 570 | if (!(p = decode_fh(p, &args->ffh)) |
559 | || !(p = decode_fh(p, &args->tfh)) | 571 | || !(p = decode_fh(p, &args->tfh)) |
560 | || !(p = decode_filename(p, &args->tname, &args->tlen))) | 572 | || !(p = decode_filename(p, &args->tname, &args->tlen))) |
@@ -564,9 +576,9 @@ nfs3svc_decode_linkargs(struct svc_rqst *rqstp, __be32 *p, | |||
564 | } | 576 | } |
565 | 577 | ||
566 | int | 578 | int |
567 | nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p, | 579 | nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p) |
568 | struct nfsd3_readdirargs *args) | ||
569 | { | 580 | { |
581 | struct nfsd3_readdirargs *args = rqstp->rq_argp; | ||
570 | p = decode_fh(p, &args->fh); | 582 | p = decode_fh(p, &args->fh); |
571 | if (!p) | 583 | if (!p) |
572 | return 0; | 584 | return 0; |
@@ -585,9 +597,9 @@ nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p, | |||
585 | } | 597 | } |
586 | 598 | ||
587 | int | 599 | int |
588 | nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p, | 600 | nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p) |
589 | struct nfsd3_readdirargs *args) | ||
590 | { | 601 | { |
602 | struct nfsd3_readdirargs *args = rqstp->rq_argp; | ||
591 | int len; | 603 | int len; |
592 | u32 max_blocksize = svc_max_payload(rqstp); | 604 | u32 max_blocksize = svc_max_payload(rqstp); |
593 | 605 | ||
@@ -613,9 +625,9 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p, | |||
613 | } | 625 | } |
614 | 626 | ||
615 | int | 627 | int |
616 | nfs3svc_decode_commitargs(struct svc_rqst *rqstp, __be32 *p, | 628 | nfs3svc_decode_commitargs(struct svc_rqst *rqstp, __be32 *p) |
617 | struct nfsd3_commitargs *args) | ||
618 | { | 629 | { |
630 | struct nfsd3_commitargs *args = rqstp->rq_argp; | ||
619 | p = decode_fh(p, &args->fh); | 631 | p = decode_fh(p, &args->fh); |
620 | if (!p) | 632 | if (!p) |
621 | return 0; | 633 | return 0; |