aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2010-12-14 09:56:10 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-12-16 12:37:22 -0500
commit499ff710b2fd3a03c8195c82340e5166eed04205 (patch)
treee564eb74bc123ab536911c4a768e0c25813efd43
parentad96b5b5eae59696b97e207d730b8c8cfb9d4e42 (diff)
NFS: Remove unused old NFSv3 encoder functions
Clean up. Remove unused legacy argument encoder functions, and any now unused encoder helper functions. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Tested-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/nfs3xdr.c328
1 files changed, 4 insertions, 324 deletions
diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c
index bbda89042053..b0af263e4db9 100644
--- a/fs/nfs/nfs3xdr.c
+++ b/fs/nfs/nfs3xdr.c
@@ -131,12 +131,6 @@ static void prepare_reply_buffer(struct rpc_rqst *req, struct page **pages,
131 * Common NFS XDR functions as inlines 131 * Common NFS XDR functions as inlines
132 */ 132 */
133static inline __be32 * 133static inline __be32 *
134xdr_encode_fhandle(__be32 *p, const struct nfs_fh *fh)
135{
136 return xdr_encode_array(p, fh->data, fh->size);
137}
138
139static inline __be32 *
140xdr_decode_fhandle(__be32 *p, struct nfs_fh *fh) 134xdr_decode_fhandle(__be32 *p, struct nfs_fh *fh)
141{ 135{
142 if ((fh->size = ntohl(*p++)) <= NFS3_FHSIZE) { 136 if ((fh->size = ntohl(*p++)) <= NFS3_FHSIZE) {
@@ -564,21 +558,13 @@ static void encode_diropargs3(struct xdr_stream *xdr, const struct nfs_fh *fh,
564 558
565 559
566/* 560/*
567 * NFS encode functions 561 * NFSv3 XDR encode functions
562 *
563 * NFSv3 argument types are defined in section 3.3 of RFC 1813:
564 * "NFS Version 3 Protocol Specification".
568 */ 565 */
569 566
570/* 567/*
571 * Encode file handle argument
572 */
573static int
574nfs3_xdr_fhandle(struct rpc_rqst *req, __be32 *p, struct nfs_fh *fh)
575{
576 p = xdr_encode_fhandle(p, fh);
577 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
578 return 0;
579}
580
581/*
582 * 3.3.1 GETATTR3args 568 * 3.3.1 GETATTR3args
583 * 569 *
584 * struct GETATTR3args { 570 * struct GETATTR3args {
@@ -596,21 +582,6 @@ static int nfs3_xdr_enc_getattr3args(struct rpc_rqst *req, __be32 *p,
596} 582}
597 583
598/* 584/*
599 * Encode SETATTR arguments
600 */
601static int
602nfs3_xdr_sattrargs(struct rpc_rqst *req, __be32 *p, struct nfs3_sattrargs *args)
603{
604 p = xdr_encode_fhandle(p, args->fh);
605 p = xdr_encode_sattr(p, args->sattr);
606 *p++ = htonl(args->guard);
607 if (args->guard)
608 p = xdr_encode_time3(p, &args->guardtime);
609 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
610 return 0;
611}
612
613/*
614 * 3.3.2 SETATTR3args 585 * 3.3.2 SETATTR3args
615 * 586 *
616 * union sattrguard3 switch (bool check) { 587 * union sattrguard3 switch (bool check) {
@@ -654,18 +625,6 @@ static int nfs3_xdr_enc_setattr3args(struct rpc_rqst *req, __be32 *p,
654} 625}
655 626
656/* 627/*
657 * Encode directory ops argument
658 */
659static int
660nfs3_xdr_diropargs(struct rpc_rqst *req, __be32 *p, struct nfs3_diropargs *args)
661{
662 p = xdr_encode_fhandle(p, args->fh);
663 p = xdr_encode_array(p, args->name, args->len);
664 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
665 return 0;
666}
667
668/*
669 * 3.3.3 LOOKUP3args 628 * 3.3.3 LOOKUP3args
670 * 629 *
671 * struct LOOKUP3args { 630 * struct LOOKUP3args {
@@ -683,30 +642,6 @@ static int nfs3_xdr_enc_lookup3args(struct rpc_rqst *req, __be32 *p,
683} 642}
684 643
685/* 644/*
686 * Encode REMOVE argument
687 */
688static int
689nfs3_xdr_removeargs(struct rpc_rqst *req, __be32 *p, const struct nfs_removeargs *args)
690{
691 p = xdr_encode_fhandle(p, args->fh);
692 p = xdr_encode_array(p, args->name.name, args->name.len);
693 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
694 return 0;
695}
696
697/*
698 * Encode access() argument
699 */
700static int
701nfs3_xdr_accessargs(struct rpc_rqst *req, __be32 *p, struct nfs3_accessargs *args)
702{
703 p = xdr_encode_fhandle(p, args->fh);
704 *p++ = htonl(args->access);
705 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
706 return 0;
707}
708
709/*
710 * 3.3.4 ACCESS3args 645 * 3.3.4 ACCESS3args
711 * 646 *
712 * struct ACCESS3args { 647 * struct ACCESS3args {
@@ -751,31 +686,6 @@ static int nfs3_xdr_enc_readlink3args(struct rpc_rqst *req, __be32 *p,
751} 686}
752 687
753/* 688/*
754 * Arguments to a READ call. Since we read data directly into the page
755 * cache, we also set up the reply iovec here so that iov[1] points
756 * exactly to the page we want to fetch.
757 */
758static int
759nfs3_xdr_readargs(struct rpc_rqst *req, __be32 *p, struct nfs_readargs *args)
760{
761 struct rpc_auth *auth = req->rq_cred->cr_auth;
762 unsigned int replen;
763 u32 count = args->count;
764
765 p = xdr_encode_fhandle(p, args->fh);
766 p = xdr_encode_hyper(p, args->offset);
767 *p++ = htonl(count);
768 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
769
770 /* Inline the page array */
771 replen = (RPC_REPHDRSIZE + auth->au_rslack + NFS3_readres_sz) << 2;
772 xdr_inline_pages(&req->rq_rcv_buf, replen,
773 args->pages, args->pgbase, count);
774 req->rq_rcv_buf.flags |= XDRBUF_READ;
775 return 0;
776}
777
778/*
779 * 3.3.6 READ3args 689 * 3.3.6 READ3args
780 * 690 *
781 * struct READ3args { 691 * struct READ3args {
@@ -810,28 +720,6 @@ static int nfs3_xdr_enc_read3args(struct rpc_rqst *req, __be32 *p,
810} 720}
811 721
812/* 722/*
813 * Write arguments. Splice the buffer to be written into the iovec.
814 */
815static int
816nfs3_xdr_writeargs(struct rpc_rqst *req, __be32 *p, struct nfs_writeargs *args)
817{
818 struct xdr_buf *sndbuf = &req->rq_snd_buf;
819 u32 count = args->count;
820
821 p = xdr_encode_fhandle(p, args->fh);
822 p = xdr_encode_hyper(p, args->offset);
823 *p++ = htonl(count);
824 *p++ = htonl(args->stable);
825 *p++ = htonl(count);
826 sndbuf->len = xdr_adjust_iovec(sndbuf->head, p);
827
828 /* Copy the page array */
829 xdr_encode_pages(sndbuf, args->pages, args->pgbase, count);
830 sndbuf->flags |= XDRBUF_WRITE;
831 return 0;
832}
833
834/*
835 * 3.3.7 WRITE3args 723 * 3.3.7 WRITE3args
836 * 724 *
837 * enum stable_how { 725 * enum stable_how {
@@ -878,26 +766,6 @@ static int nfs3_xdr_enc_write3args(struct rpc_rqst *req, __be32 *p,
878} 766}
879 767
880/* 768/*
881 * Encode CREATE arguments
882 */
883static int
884nfs3_xdr_createargs(struct rpc_rqst *req, __be32 *p, struct nfs3_createargs *args)
885{
886 p = xdr_encode_fhandle(p, args->fh);
887 p = xdr_encode_array(p, args->name, args->len);
888
889 *p++ = htonl(args->createmode);
890 if (args->createmode == NFS3_CREATE_EXCLUSIVE) {
891 *p++ = args->verifier[0];
892 *p++ = args->verifier[1];
893 } else
894 p = xdr_encode_sattr(p, args->sattr);
895
896 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
897 return 0;
898}
899
900/*
901 * 3.3.8 CREATE3args 769 * 3.3.8 CREATE3args
902 * 770 *
903 * enum createmode3 { 771 * enum createmode3 {
@@ -948,19 +816,6 @@ static int nfs3_xdr_enc_create3args(struct rpc_rqst *req, __be32 *p,
948} 816}
949 817
950/* 818/*
951 * Encode MKDIR arguments
952 */
953static int
954nfs3_xdr_mkdirargs(struct rpc_rqst *req, __be32 *p, struct nfs3_mkdirargs *args)
955{
956 p = xdr_encode_fhandle(p, args->fh);
957 p = xdr_encode_array(p, args->name, args->len);
958 p = xdr_encode_sattr(p, args->sattr);
959 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
960 return 0;
961}
962
963/*
964 * 3.3.9 MKDIR3args 819 * 3.3.9 MKDIR3args
965 * 820 *
966 * struct MKDIR3args { 821 * struct MKDIR3args {
@@ -980,23 +835,6 @@ static int nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req, __be32 *p,
980} 835}
981 836
982/* 837/*
983 * Encode SYMLINK arguments
984 */
985static int
986nfs3_xdr_symlinkargs(struct rpc_rqst *req, __be32 *p, struct nfs3_symlinkargs *args)
987{
988 p = xdr_encode_fhandle(p, args->fromfh);
989 p = xdr_encode_array(p, args->fromname, args->fromlen);
990 p = xdr_encode_sattr(p, args->sattr);
991 *p++ = htonl(args->pathlen);
992 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
993
994 /* Copy the page */
995 xdr_encode_pages(&req->rq_snd_buf, args->pages, 0, args->pathlen);
996 return 0;
997}
998
999/*
1000 * 3.3.10 SYMLINK3args 838 * 3.3.10 SYMLINK3args
1001 * 839 *
1002 * struct symlinkdata3 { 840 * struct symlinkdata3 {
@@ -1028,25 +866,6 @@ static int nfs3_xdr_enc_symlink3args(struct rpc_rqst *req, __be32 *p,
1028} 866}
1029 867
1030/* 868/*
1031 * Encode MKNOD arguments
1032 */
1033static int
1034nfs3_xdr_mknodargs(struct rpc_rqst *req, __be32 *p, struct nfs3_mknodargs *args)
1035{
1036 p = xdr_encode_fhandle(p, args->fh);
1037 p = xdr_encode_array(p, args->name, args->len);
1038 *p++ = htonl(args->type);
1039 p = xdr_encode_sattr(p, args->sattr);
1040 if (args->type == NF3CHR || args->type == NF3BLK) {
1041 *p++ = htonl(MAJOR(args->rdev));
1042 *p++ = htonl(MINOR(args->rdev));
1043 }
1044
1045 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1046 return 0;
1047}
1048
1049/*
1050 * 3.3.11 MKNOD3args 869 * 3.3.11 MKNOD3args
1051 * 870 *
1052 * struct devicedata3 { 871 * struct devicedata3 {
@@ -1127,20 +946,6 @@ static int nfs3_xdr_enc_remove3args(struct rpc_rqst *req, __be32 *p,
1127} 946}
1128 947
1129/* 948/*
1130 * Encode RENAME arguments
1131 */
1132static int
1133nfs3_xdr_renameargs(struct rpc_rqst *req, __be32 *p, struct nfs_renameargs *args)
1134{
1135 p = xdr_encode_fhandle(p, args->old_dir);
1136 p = xdr_encode_array(p, args->old_name->name, args->old_name->len);
1137 p = xdr_encode_fhandle(p, args->new_dir);
1138 p = xdr_encode_array(p, args->new_name->name, args->new_name->len);
1139 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1140 return 0;
1141}
1142
1143/*
1144 * 3.3.14 RENAME3args 949 * 3.3.14 RENAME3args
1145 * 950 *
1146 * struct RENAME3args { 951 * struct RENAME3args {
@@ -1162,19 +967,6 @@ static int nfs3_xdr_enc_rename3args(struct rpc_rqst *req, __be32 *p,
1162} 967}
1163 968
1164/* 969/*
1165 * Encode LINK arguments
1166 */
1167static int
1168nfs3_xdr_linkargs(struct rpc_rqst *req, __be32 *p, struct nfs3_linkargs *args)
1169{
1170 p = xdr_encode_fhandle(p, args->fromfh);
1171 p = xdr_encode_fhandle(p, args->tofh);
1172 p = xdr_encode_array(p, args->toname, args->tolen);
1173 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1174 return 0;
1175}
1176
1177/*
1178 * 3.3.15 LINK3args 970 * 3.3.15 LINK3args
1179 * 971 *
1180 * struct LINK3args { 972 * struct LINK3args {
@@ -1194,34 +986,6 @@ static int nfs3_xdr_enc_link3args(struct rpc_rqst *req, __be32 *p,
1194} 986}
1195 987
1196/* 988/*
1197 * Encode arguments to readdir call
1198 */
1199static int
1200nfs3_xdr_readdirargs(struct rpc_rqst *req, __be32 *p, struct nfs3_readdirargs *args)
1201{
1202 struct rpc_auth *auth = req->rq_cred->cr_auth;
1203 unsigned int replen;
1204 u32 count = args->count;
1205
1206 p = xdr_encode_fhandle(p, args->fh);
1207 p = xdr_encode_hyper(p, args->cookie);
1208 *p++ = args->verf[0];
1209 *p++ = args->verf[1];
1210 if (args->plus) {
1211 /* readdirplus: need dircount + buffer size.
1212 * We just make sure we make dircount big enough */
1213 *p++ = htonl(count >> 3);
1214 }
1215 *p++ = htonl(count);
1216 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1217
1218 /* Inline the page array */
1219 replen = (RPC_REPHDRSIZE + auth->au_rslack + NFS3_readdirres_sz) << 2;
1220 xdr_inline_pages(&req->rq_rcv_buf, replen, args->pages, 0, count);
1221 return 0;
1222}
1223
1224/*
1225 * 3.3.16 READDIR3args 989 * 3.3.16 READDIR3args
1226 * 990 *
1227 * struct READDIR3args { 991 * struct READDIR3args {
@@ -1418,19 +1182,6 @@ out_overflow_exit:
1418} 1182}
1419 1183
1420/* 1184/*
1421 * Encode COMMIT arguments
1422 */
1423static int
1424nfs3_xdr_commitargs(struct rpc_rqst *req, __be32 *p, struct nfs_writeargs *args)
1425{
1426 p = xdr_encode_fhandle(p, args->fh);
1427 p = xdr_encode_hyper(p, args->offset);
1428 *p++ = htonl(args->count);
1429 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1430 return 0;
1431}
1432
1433/*
1434 * 3.3.21 COMMIT3args 1185 * 3.3.21 COMMIT3args
1435 * 1186 *
1436 * struct COMMIT3args { 1187 * struct COMMIT3args {
@@ -1462,29 +1213,6 @@ static int nfs3_xdr_enc_commit3args(struct rpc_rqst *req, __be32 *p,
1462} 1213}
1463 1214
1464#ifdef CONFIG_NFS_V3_ACL 1215#ifdef CONFIG_NFS_V3_ACL
1465/*
1466 * Encode GETACL arguments
1467 */
1468static int
1469nfs3_xdr_getaclargs(struct rpc_rqst *req, __be32 *p,
1470 struct nfs3_getaclargs *args)
1471{
1472 struct rpc_auth *auth = req->rq_cred->cr_auth;
1473 unsigned int replen;
1474
1475 p = xdr_encode_fhandle(p, args->fh);
1476 *p++ = htonl(args->mask);
1477 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1478
1479 if (args->mask & (NFS_ACL | NFS_DFACL)) {
1480 /* Inline the page array */
1481 replen = (RPC_REPHDRSIZE + auth->au_rslack +
1482 ACL3_getaclres_sz) << 2;
1483 xdr_inline_pages(&req->rq_rcv_buf, replen, args->pages, 0,
1484 NFSACL_MAXPAGES << PAGE_SHIFT);
1485 }
1486 return 0;
1487}
1488 1216
1489static int nfs3_xdr_enc_getacl3args(struct rpc_rqst *req, __be32 *p, 1217static int nfs3_xdr_enc_getacl3args(struct rpc_rqst *req, __be32 *p,
1490 const struct nfs3_getaclargs *args) 1218 const struct nfs3_getaclargs *args)
@@ -1501,39 +1229,6 @@ static int nfs3_xdr_enc_getacl3args(struct rpc_rqst *req, __be32 *p,
1501 return 0; 1229 return 0;
1502} 1230}
1503 1231
1504/*
1505 * Encode SETACL arguments
1506 */
1507static int
1508nfs3_xdr_setaclargs(struct rpc_rqst *req, __be32 *p,
1509 struct nfs3_setaclargs *args)
1510{
1511 struct xdr_buf *buf = &req->rq_snd_buf;
1512 unsigned int base;
1513 int err;
1514
1515 p = xdr_encode_fhandle(p, NFS_FH(args->inode));
1516 *p++ = htonl(args->mask);
1517 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1518 base = req->rq_slen;
1519
1520 if (args->npages != 0)
1521 xdr_encode_pages(buf, args->pages, 0, args->len);
1522 else
1523 req->rq_slen = xdr_adjust_iovec(req->rq_svec,
1524 p + XDR_QUADLEN(args->len));
1525
1526 err = nfsacl_encode(buf, base, args->inode,
1527 (args->mask & NFS_ACL) ?
1528 args->acl_access : NULL, 1, 0);
1529 if (err > 0)
1530 err = nfsacl_encode(buf, base + err, args->inode,
1531 (args->mask & NFS_DFACL) ?
1532 args->acl_default : NULL, 1,
1533 NFS_ACL_DEFAULT);
1534 return (err > 0) ? 0 : err;
1535}
1536
1537static int nfs3_xdr_enc_setacl3args(struct rpc_rqst *req, __be32 *p, 1232static int nfs3_xdr_enc_setacl3args(struct rpc_rqst *req, __be32 *p,
1538 const struct nfs3_setaclargs *args) 1233 const struct nfs3_setaclargs *args)
1539{ 1234{
@@ -1635,21 +1330,6 @@ nfs3_xdr_accessres(struct rpc_rqst *req, __be32 *p, struct nfs3_accessres *res)
1635 return 0; 1330 return 0;
1636} 1331}
1637 1332
1638static int
1639nfs3_xdr_readlinkargs(struct rpc_rqst *req, __be32 *p, struct nfs3_readlinkargs *args)
1640{
1641 struct rpc_auth *auth = req->rq_cred->cr_auth;
1642 unsigned int replen;
1643
1644 p = xdr_encode_fhandle(p, args->fh);
1645 req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
1646
1647 /* Inline the page array */
1648 replen = (RPC_REPHDRSIZE + auth->au_rslack + NFS3_readlinkres_sz) << 2;
1649 xdr_inline_pages(&req->rq_rcv_buf, replen, args->pages, args->pgbase, args->pglen);
1650 return 0;
1651}
1652
1653/* 1333/*
1654 * Decode READLINK reply 1334 * Decode READLINK reply
1655 */ 1335 */