diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2010-12-14 09:59:18 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-12-16 12:37:25 -0500 |
commit | 9f06c719f474be7003763284a990bed6377bb0d4 (patch) | |
tree | 409ebc3505f943bfdb933ab0acd76ffb5347b372 /fs/nfs/nfs3xdr.c | |
parent | 1ac7c23e4af5e83525137661595000099f1ce94f (diff) |
SUNRPC: New xdr_streams XDR encoder API
Now that all client-side XDR encoder routines use xdr_streams, there
should be no need to support the legacy calling sequence [rpc_rqst *,
__be32 *, RPC arg *] anywhere. We can construct an xdr_stream in the
generic RPC code, instead of in each encoder function.
Also, all the client-side encoder functions return 0 now, making a
return value superfluous. Take this opportunity to convert them to
return void instead.
This is a refactoring change. It should not cause different behavior.
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>
Diffstat (limited to 'fs/nfs/nfs3xdr.c')
-rw-r--r-- | fs/nfs/nfs3xdr.c | 241 |
1 files changed, 93 insertions, 148 deletions
diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c index 15c93ccd90c5..ae1b1a43f05e 100644 --- a/fs/nfs/nfs3xdr.c +++ b/fs/nfs/nfs3xdr.c | |||
@@ -835,14 +835,11 @@ static void encode_diropargs3(struct xdr_stream *xdr, const struct nfs_fh *fh, | |||
835 | * nfs_fh3 object; | 835 | * nfs_fh3 object; |
836 | * }; | 836 | * }; |
837 | */ | 837 | */ |
838 | static int nfs3_xdr_enc_getattr3args(struct rpc_rqst *req, __be32 *p, | 838 | static void nfs3_xdr_enc_getattr3args(struct rpc_rqst *req, |
839 | const struct nfs_fh *fh) | 839 | struct xdr_stream *xdr, |
840 | const struct nfs_fh *fh) | ||
840 | { | 841 | { |
841 | struct xdr_stream xdr; | 842 | encode_nfs_fh3(xdr, fh); |
842 | |||
843 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
844 | encode_nfs_fh3(&xdr, fh); | ||
845 | return 0; | ||
846 | } | 843 | } |
847 | 844 | ||
848 | /* | 845 | /* |
@@ -876,16 +873,13 @@ static void encode_sattrguard3(struct xdr_stream *xdr, | |||
876 | } | 873 | } |
877 | } | 874 | } |
878 | 875 | ||
879 | static int nfs3_xdr_enc_setattr3args(struct rpc_rqst *req, __be32 *p, | 876 | static void nfs3_xdr_enc_setattr3args(struct rpc_rqst *req, |
880 | const struct nfs3_sattrargs *args) | 877 | struct xdr_stream *xdr, |
878 | const struct nfs3_sattrargs *args) | ||
881 | { | 879 | { |
882 | struct xdr_stream xdr; | 880 | encode_nfs_fh3(xdr, args->fh); |
883 | 881 | encode_sattr3(xdr, args->sattr); | |
884 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | 882 | encode_sattrguard3(xdr, args); |
885 | encode_nfs_fh3(&xdr, args->fh); | ||
886 | encode_sattr3(&xdr, args->sattr); | ||
887 | encode_sattrguard3(&xdr, args); | ||
888 | return 0; | ||
889 | } | 883 | } |
890 | 884 | ||
891 | /* | 885 | /* |
@@ -895,14 +889,11 @@ static int nfs3_xdr_enc_setattr3args(struct rpc_rqst *req, __be32 *p, | |||
895 | * diropargs3 what; | 889 | * diropargs3 what; |
896 | * }; | 890 | * }; |
897 | */ | 891 | */ |
898 | static int nfs3_xdr_enc_lookup3args(struct rpc_rqst *req, __be32 *p, | 892 | static void nfs3_xdr_enc_lookup3args(struct rpc_rqst *req, |
899 | const struct nfs3_diropargs *args) | 893 | struct xdr_stream *xdr, |
894 | const struct nfs3_diropargs *args) | ||
900 | { | 895 | { |
901 | struct xdr_stream xdr; | 896 | encode_diropargs3(xdr, args->fh, args->name, args->len); |
902 | |||
903 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
904 | encode_diropargs3(&xdr, args->fh, args->name, args->len); | ||
905 | return 0; | ||
906 | } | 897 | } |
907 | 898 | ||
908 | /* | 899 | /* |
@@ -920,14 +911,11 @@ static void encode_access3args(struct xdr_stream *xdr, | |||
920 | encode_uint32(xdr, args->access); | 911 | encode_uint32(xdr, args->access); |
921 | } | 912 | } |
922 | 913 | ||
923 | static int nfs3_xdr_enc_access3args(struct rpc_rqst *req, __be32 *p, | 914 | static void nfs3_xdr_enc_access3args(struct rpc_rqst *req, |
924 | const struct nfs3_accessargs *args) | 915 | struct xdr_stream *xdr, |
916 | const struct nfs3_accessargs *args) | ||
925 | { | 917 | { |
926 | struct xdr_stream xdr; | 918 | encode_access3args(xdr, args); |
927 | |||
928 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
929 | encode_access3args(&xdr, args); | ||
930 | return 0; | ||
931 | } | 919 | } |
932 | 920 | ||
933 | /* | 921 | /* |
@@ -937,16 +925,13 @@ static int nfs3_xdr_enc_access3args(struct rpc_rqst *req, __be32 *p, | |||
937 | * nfs_fh3 symlink; | 925 | * nfs_fh3 symlink; |
938 | * }; | 926 | * }; |
939 | */ | 927 | */ |
940 | static int nfs3_xdr_enc_readlink3args(struct rpc_rqst *req, __be32 *p, | 928 | static void nfs3_xdr_enc_readlink3args(struct rpc_rqst *req, |
941 | const struct nfs3_readlinkargs *args) | 929 | struct xdr_stream *xdr, |
930 | const struct nfs3_readlinkargs *args) | ||
942 | { | 931 | { |
943 | struct xdr_stream xdr; | 932 | encode_nfs_fh3(xdr, args->fh); |
944 | |||
945 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
946 | encode_nfs_fh3(&xdr, args->fh); | ||
947 | prepare_reply_buffer(req, args->pages, args->pgbase, | 933 | prepare_reply_buffer(req, args->pages, args->pgbase, |
948 | args->pglen, NFS3_readlinkres_sz); | 934 | args->pglen, NFS3_readlinkres_sz); |
949 | return 0; | ||
950 | } | 935 | } |
951 | 936 | ||
952 | /* | 937 | /* |
@@ -970,17 +955,14 @@ static void encode_read3args(struct xdr_stream *xdr, | |||
970 | *p = cpu_to_be32(args->count); | 955 | *p = cpu_to_be32(args->count); |
971 | } | 956 | } |
972 | 957 | ||
973 | static int nfs3_xdr_enc_read3args(struct rpc_rqst *req, __be32 *p, | 958 | static void nfs3_xdr_enc_read3args(struct rpc_rqst *req, |
974 | const struct nfs_readargs *args) | 959 | struct xdr_stream *xdr, |
960 | const struct nfs_readargs *args) | ||
975 | { | 961 | { |
976 | struct xdr_stream xdr; | 962 | encode_read3args(xdr, args); |
977 | |||
978 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
979 | encode_read3args(&xdr, args); | ||
980 | prepare_reply_buffer(req, args->pages, args->pgbase, | 963 | prepare_reply_buffer(req, args->pages, args->pgbase, |
981 | args->count, NFS3_readres_sz); | 964 | args->count, NFS3_readres_sz); |
982 | req->rq_rcv_buf.flags |= XDRBUF_READ; | 965 | req->rq_rcv_buf.flags |= XDRBUF_READ; |
983 | return 0; | ||
984 | } | 966 | } |
985 | 967 | ||
986 | /* | 968 | /* |
@@ -1015,15 +997,12 @@ static void encode_write3args(struct xdr_stream *xdr, | |||
1015 | xdr_write_pages(xdr, args->pages, args->pgbase, args->count); | 997 | xdr_write_pages(xdr, args->pages, args->pgbase, args->count); |
1016 | } | 998 | } |
1017 | 999 | ||
1018 | static int nfs3_xdr_enc_write3args(struct rpc_rqst *req, __be32 *p, | 1000 | static void nfs3_xdr_enc_write3args(struct rpc_rqst *req, |
1019 | const struct nfs_writeargs *args) | 1001 | struct xdr_stream *xdr, |
1002 | const struct nfs_writeargs *args) | ||
1020 | { | 1003 | { |
1021 | struct xdr_stream xdr; | 1004 | encode_write3args(xdr, args); |
1022 | 1005 | xdr->buf->flags |= XDRBUF_WRITE; | |
1023 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1024 | encode_write3args(&xdr, args); | ||
1025 | xdr.buf->flags |= XDRBUF_WRITE; | ||
1026 | return 0; | ||
1027 | } | 1006 | } |
1028 | 1007 | ||
1029 | /* | 1008 | /* |
@@ -1065,15 +1044,12 @@ static void encode_createhow3(struct xdr_stream *xdr, | |||
1065 | } | 1044 | } |
1066 | } | 1045 | } |
1067 | 1046 | ||
1068 | static int nfs3_xdr_enc_create3args(struct rpc_rqst *req, __be32 *p, | 1047 | static void nfs3_xdr_enc_create3args(struct rpc_rqst *req, |
1069 | const struct nfs3_createargs *args) | 1048 | struct xdr_stream *xdr, |
1049 | const struct nfs3_createargs *args) | ||
1070 | { | 1050 | { |
1071 | struct xdr_stream xdr; | 1051 | encode_diropargs3(xdr, args->fh, args->name, args->len); |
1072 | 1052 | encode_createhow3(xdr, args); | |
1073 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1074 | encode_diropargs3(&xdr, args->fh, args->name, args->len); | ||
1075 | encode_createhow3(&xdr, args); | ||
1076 | return 0; | ||
1077 | } | 1053 | } |
1078 | 1054 | ||
1079 | /* | 1055 | /* |
@@ -1084,15 +1060,12 @@ static int nfs3_xdr_enc_create3args(struct rpc_rqst *req, __be32 *p, | |||
1084 | * sattr3 attributes; | 1060 | * sattr3 attributes; |
1085 | * }; | 1061 | * }; |
1086 | */ | 1062 | */ |
1087 | static int nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req, __be32 *p, | 1063 | static void nfs3_xdr_enc_mkdir3args(struct rpc_rqst *req, |
1088 | const struct nfs3_mkdirargs *args) | 1064 | struct xdr_stream *xdr, |
1065 | const struct nfs3_mkdirargs *args) | ||
1089 | { | 1066 | { |
1090 | struct xdr_stream xdr; | 1067 | encode_diropargs3(xdr, args->fh, args->name, args->len); |
1091 | 1068 | encode_sattr3(xdr, args->sattr); | |
1092 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1093 | encode_diropargs3(&xdr, args->fh, args->name, args->len); | ||
1094 | encode_sattr3(&xdr, args->sattr); | ||
1095 | return 0; | ||
1096 | } | 1069 | } |
1097 | 1070 | ||
1098 | /* | 1071 | /* |
@@ -1115,15 +1088,12 @@ static void encode_symlinkdata3(struct xdr_stream *xdr, | |||
1115 | encode_nfspath3(xdr, args->pages, args->pathlen); | 1088 | encode_nfspath3(xdr, args->pages, args->pathlen); |
1116 | } | 1089 | } |
1117 | 1090 | ||
1118 | static int nfs3_xdr_enc_symlink3args(struct rpc_rqst *req, __be32 *p, | 1091 | static void nfs3_xdr_enc_symlink3args(struct rpc_rqst *req, |
1119 | const struct nfs3_symlinkargs *args) | 1092 | struct xdr_stream *xdr, |
1093 | const struct nfs3_symlinkargs *args) | ||
1120 | { | 1094 | { |
1121 | struct xdr_stream xdr; | 1095 | encode_diropargs3(xdr, args->fromfh, args->fromname, args->fromlen); |
1122 | 1096 | encode_symlinkdata3(xdr, args); | |
1123 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1124 | encode_diropargs3(&xdr, args->fromfh, args->fromname, args->fromlen); | ||
1125 | encode_symlinkdata3(&xdr, args); | ||
1126 | return 0; | ||
1127 | } | 1097 | } |
1128 | 1098 | ||
1129 | /* | 1099 | /* |
@@ -1178,15 +1148,12 @@ static void encode_mknoddata3(struct xdr_stream *xdr, | |||
1178 | } | 1148 | } |
1179 | } | 1149 | } |
1180 | 1150 | ||
1181 | static int nfs3_xdr_enc_mknod3args(struct rpc_rqst *req, __be32 *p, | 1151 | static void nfs3_xdr_enc_mknod3args(struct rpc_rqst *req, |
1182 | const struct nfs3_mknodargs *args) | 1152 | struct xdr_stream *xdr, |
1153 | const struct nfs3_mknodargs *args) | ||
1183 | { | 1154 | { |
1184 | struct xdr_stream xdr; | 1155 | encode_diropargs3(xdr, args->fh, args->name, args->len); |
1185 | 1156 | encode_mknoddata3(xdr, args); | |
1186 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1187 | encode_diropargs3(&xdr, args->fh, args->name, args->len); | ||
1188 | encode_mknoddata3(&xdr, args); | ||
1189 | return 0; | ||
1190 | } | 1157 | } |
1191 | 1158 | ||
1192 | /* | 1159 | /* |
@@ -1196,14 +1163,11 @@ static int nfs3_xdr_enc_mknod3args(struct rpc_rqst *req, __be32 *p, | |||
1196 | * diropargs3 object; | 1163 | * diropargs3 object; |
1197 | * }; | 1164 | * }; |
1198 | */ | 1165 | */ |
1199 | static int nfs3_xdr_enc_remove3args(struct rpc_rqst *req, __be32 *p, | 1166 | static void nfs3_xdr_enc_remove3args(struct rpc_rqst *req, |
1200 | const struct nfs_removeargs *args) | 1167 | struct xdr_stream *xdr, |
1168 | const struct nfs_removeargs *args) | ||
1201 | { | 1169 | { |
1202 | struct xdr_stream xdr; | 1170 | encode_diropargs3(xdr, args->fh, args->name.name, args->name.len); |
1203 | |||
1204 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1205 | encode_diropargs3(&xdr, args->fh, args->name.name, args->name.len); | ||
1206 | return 0; | ||
1207 | } | 1171 | } |
1208 | 1172 | ||
1209 | /* | 1173 | /* |
@@ -1214,17 +1178,15 @@ static int nfs3_xdr_enc_remove3args(struct rpc_rqst *req, __be32 *p, | |||
1214 | * diropargs3 to; | 1178 | * diropargs3 to; |
1215 | * }; | 1179 | * }; |
1216 | */ | 1180 | */ |
1217 | static int nfs3_xdr_enc_rename3args(struct rpc_rqst *req, __be32 *p, | 1181 | static void nfs3_xdr_enc_rename3args(struct rpc_rqst *req, |
1218 | const struct nfs_renameargs *args) | 1182 | struct xdr_stream *xdr, |
1183 | const struct nfs_renameargs *args) | ||
1219 | { | 1184 | { |
1220 | const struct qstr *old = args->old_name; | 1185 | const struct qstr *old = args->old_name; |
1221 | const struct qstr *new = args->new_name; | 1186 | const struct qstr *new = args->new_name; |
1222 | struct xdr_stream xdr; | ||
1223 | 1187 | ||
1224 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | 1188 | encode_diropargs3(xdr, args->old_dir, old->name, old->len); |
1225 | encode_diropargs3(&xdr, args->old_dir, old->name, old->len); | 1189 | encode_diropargs3(xdr, args->new_dir, new->name, new->len); |
1226 | encode_diropargs3(&xdr, args->new_dir, new->name, new->len); | ||
1227 | return 0; | ||
1228 | } | 1190 | } |
1229 | 1191 | ||
1230 | /* | 1192 | /* |
@@ -1235,15 +1197,12 @@ static int nfs3_xdr_enc_rename3args(struct rpc_rqst *req, __be32 *p, | |||
1235 | * diropargs3 link; | 1197 | * diropargs3 link; |
1236 | * }; | 1198 | * }; |
1237 | */ | 1199 | */ |
1238 | static int nfs3_xdr_enc_link3args(struct rpc_rqst *req, __be32 *p, | 1200 | static void nfs3_xdr_enc_link3args(struct rpc_rqst *req, |
1239 | const struct nfs3_linkargs *args) | 1201 | struct xdr_stream *xdr, |
1202 | const struct nfs3_linkargs *args) | ||
1240 | { | 1203 | { |
1241 | struct xdr_stream xdr; | 1204 | encode_nfs_fh3(xdr, args->fromfh); |
1242 | 1205 | encode_diropargs3(xdr, args->tofh, args->toname, args->tolen); | |
1243 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1244 | encode_nfs_fh3(&xdr, args->fromfh); | ||
1245 | encode_diropargs3(&xdr, args->tofh, args->toname, args->tolen); | ||
1246 | return 0; | ||
1247 | } | 1206 | } |
1248 | 1207 | ||
1249 | /* | 1208 | /* |
@@ -1269,16 +1228,13 @@ static void encode_readdir3args(struct xdr_stream *xdr, | |||
1269 | *p = cpu_to_be32(args->count); | 1228 | *p = cpu_to_be32(args->count); |
1270 | } | 1229 | } |
1271 | 1230 | ||
1272 | static int nfs3_xdr_enc_readdir3args(struct rpc_rqst *req, __be32 *p, | 1231 | static void nfs3_xdr_enc_readdir3args(struct rpc_rqst *req, |
1273 | const struct nfs3_readdirargs *args) | 1232 | struct xdr_stream *xdr, |
1233 | const struct nfs3_readdirargs *args) | ||
1274 | { | 1234 | { |
1275 | struct xdr_stream xdr; | 1235 | encode_readdir3args(xdr, args); |
1276 | |||
1277 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1278 | encode_readdir3args(&xdr, args); | ||
1279 | prepare_reply_buffer(req, args->pages, 0, | 1236 | prepare_reply_buffer(req, args->pages, 0, |
1280 | args->count, NFS3_readdirres_sz); | 1237 | args->count, NFS3_readdirres_sz); |
1281 | return 0; | ||
1282 | } | 1238 | } |
1283 | 1239 | ||
1284 | /* | 1240 | /* |
@@ -1312,16 +1268,13 @@ static void encode_readdirplus3args(struct xdr_stream *xdr, | |||
1312 | *p = cpu_to_be32(args->count); | 1268 | *p = cpu_to_be32(args->count); |
1313 | } | 1269 | } |
1314 | 1270 | ||
1315 | static int nfs3_xdr_enc_readdirplus3args(struct rpc_rqst *req, __be32 *p, | 1271 | static void nfs3_xdr_enc_readdirplus3args(struct rpc_rqst *req, |
1316 | const struct nfs3_readdirargs *args) | 1272 | struct xdr_stream *xdr, |
1273 | const struct nfs3_readdirargs *args) | ||
1317 | { | 1274 | { |
1318 | struct xdr_stream xdr; | 1275 | encode_readdirplus3args(xdr, args); |
1319 | |||
1320 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1321 | encode_readdirplus3args(&xdr, args); | ||
1322 | prepare_reply_buffer(req, args->pages, 0, | 1276 | prepare_reply_buffer(req, args->pages, 0, |
1323 | args->count, NFS3_readdirres_sz); | 1277 | args->count, NFS3_readdirres_sz); |
1324 | return 0; | ||
1325 | } | 1278 | } |
1326 | 1279 | ||
1327 | /* | 1280 | /* |
@@ -1345,57 +1298,49 @@ static void encode_commit3args(struct xdr_stream *xdr, | |||
1345 | *p = cpu_to_be32(args->count); | 1298 | *p = cpu_to_be32(args->count); |
1346 | } | 1299 | } |
1347 | 1300 | ||
1348 | static int nfs3_xdr_enc_commit3args(struct rpc_rqst *req, __be32 *p, | 1301 | static void nfs3_xdr_enc_commit3args(struct rpc_rqst *req, |
1349 | const struct nfs_writeargs *args) | 1302 | struct xdr_stream *xdr, |
1303 | const struct nfs_writeargs *args) | ||
1350 | { | 1304 | { |
1351 | struct xdr_stream xdr; | 1305 | encode_commit3args(xdr, args); |
1352 | |||
1353 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1354 | encode_commit3args(&xdr, args); | ||
1355 | return 0; | ||
1356 | } | 1306 | } |
1357 | 1307 | ||
1358 | #ifdef CONFIG_NFS_V3_ACL | 1308 | #ifdef CONFIG_NFS_V3_ACL |
1359 | 1309 | ||
1360 | static int nfs3_xdr_enc_getacl3args(struct rpc_rqst *req, __be32 *p, | 1310 | static void nfs3_xdr_enc_getacl3args(struct rpc_rqst *req, |
1361 | const struct nfs3_getaclargs *args) | 1311 | struct xdr_stream *xdr, |
1312 | const struct nfs3_getaclargs *args) | ||
1362 | { | 1313 | { |
1363 | struct xdr_stream xdr; | 1314 | encode_nfs_fh3(xdr, args->fh); |
1364 | 1315 | encode_uint32(xdr, args->mask); | |
1365 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | ||
1366 | encode_nfs_fh3(&xdr, args->fh); | ||
1367 | encode_uint32(&xdr, args->mask); | ||
1368 | if (args->mask & (NFS_ACL | NFS_DFACL)) | 1316 | if (args->mask & (NFS_ACL | NFS_DFACL)) |
1369 | prepare_reply_buffer(req, args->pages, 0, | 1317 | prepare_reply_buffer(req, args->pages, 0, |
1370 | NFSACL_MAXPAGES << PAGE_SHIFT, | 1318 | NFSACL_MAXPAGES << PAGE_SHIFT, |
1371 | ACL3_getaclres_sz); | 1319 | ACL3_getaclres_sz); |
1372 | return 0; | ||
1373 | } | 1320 | } |
1374 | 1321 | ||
1375 | static int nfs3_xdr_enc_setacl3args(struct rpc_rqst *req, __be32 *p, | 1322 | static void nfs3_xdr_enc_setacl3args(struct rpc_rqst *req, |
1376 | const struct nfs3_setaclargs *args) | 1323 | struct xdr_stream *xdr, |
1324 | const struct nfs3_setaclargs *args) | ||
1377 | { | 1325 | { |
1378 | struct xdr_stream xdr; | ||
1379 | unsigned int base; | 1326 | unsigned int base; |
1380 | int error; | 1327 | int error; |
1381 | 1328 | ||
1382 | xdr_init_encode(&xdr, &req->rq_snd_buf, p); | 1329 | encode_nfs_fh3(xdr, NFS_FH(args->inode)); |
1383 | encode_nfs_fh3(&xdr, NFS_FH(args->inode)); | 1330 | encode_uint32(xdr, args->mask); |
1384 | encode_uint32(&xdr, args->mask); | ||
1385 | if (args->npages != 0) | 1331 | if (args->npages != 0) |
1386 | xdr_write_pages(&xdr, args->pages, 0, args->len); | 1332 | xdr_write_pages(xdr, args->pages, 0, args->len); |
1387 | 1333 | ||
1388 | base = req->rq_slen; | 1334 | base = req->rq_slen; |
1389 | error = nfsacl_encode(xdr.buf, base, args->inode, | 1335 | error = nfsacl_encode(xdr->buf, base, args->inode, |
1390 | (args->mask & NFS_ACL) ? | 1336 | (args->mask & NFS_ACL) ? |
1391 | args->acl_access : NULL, 1, 0); | 1337 | args->acl_access : NULL, 1, 0); |
1392 | BUG_ON(error < 0); | 1338 | BUG_ON(error < 0); |
1393 | error = nfsacl_encode(xdr.buf, base + error, args->inode, | 1339 | error = nfsacl_encode(xdr->buf, base + error, args->inode, |
1394 | (args->mask & NFS_DFACL) ? | 1340 | (args->mask & NFS_DFACL) ? |
1395 | args->acl_default : NULL, 1, | 1341 | args->acl_default : NULL, 1, |
1396 | NFS_ACL_DEFAULT); | 1342 | NFS_ACL_DEFAULT); |
1397 | BUG_ON(error < 0); | 1343 | BUG_ON(error < 0); |
1398 | return 0; | ||
1399 | } | 1344 | } |
1400 | 1345 | ||
1401 | #endif /* CONFIG_NFS_V3_ACL */ | 1346 | #endif /* CONFIG_NFS_V3_ACL */ |
@@ -2506,7 +2451,7 @@ out_default: | |||
2506 | #define PROC(proc, argtype, restype, timer) \ | 2451 | #define PROC(proc, argtype, restype, timer) \ |
2507 | [NFS3PROC_##proc] = { \ | 2452 | [NFS3PROC_##proc] = { \ |
2508 | .p_proc = NFS3PROC_##proc, \ | 2453 | .p_proc = NFS3PROC_##proc, \ |
2509 | .p_encode = (kxdrproc_t)nfs3_xdr_enc_##argtype##3args, \ | 2454 | .p_encode = (kxdreproc_t)nfs3_xdr_enc_##argtype##3args, \ |
2510 | .p_decode = (kxdrproc_t)nfs3_xdr_dec_##restype##3res, \ | 2455 | .p_decode = (kxdrproc_t)nfs3_xdr_dec_##restype##3res, \ |
2511 | .p_arglen = NFS3_##argtype##args_sz, \ | 2456 | .p_arglen = NFS3_##argtype##args_sz, \ |
2512 | .p_replen = NFS3_##restype##res_sz, \ | 2457 | .p_replen = NFS3_##restype##res_sz, \ |
@@ -2549,7 +2494,7 @@ struct rpc_version nfs_version3 = { | |||
2549 | static struct rpc_procinfo nfs3_acl_procedures[] = { | 2494 | static struct rpc_procinfo nfs3_acl_procedures[] = { |
2550 | [ACLPROC3_GETACL] = { | 2495 | [ACLPROC3_GETACL] = { |
2551 | .p_proc = ACLPROC3_GETACL, | 2496 | .p_proc = ACLPROC3_GETACL, |
2552 | .p_encode = (kxdrproc_t)nfs3_xdr_enc_getacl3args, | 2497 | .p_encode = (kxdreproc_t)nfs3_xdr_enc_getacl3args, |
2553 | .p_decode = (kxdrproc_t)nfs3_xdr_dec_getacl3res, | 2498 | .p_decode = (kxdrproc_t)nfs3_xdr_dec_getacl3res, |
2554 | .p_arglen = ACL3_getaclargs_sz, | 2499 | .p_arglen = ACL3_getaclargs_sz, |
2555 | .p_replen = ACL3_getaclres_sz, | 2500 | .p_replen = ACL3_getaclres_sz, |
@@ -2558,7 +2503,7 @@ static struct rpc_procinfo nfs3_acl_procedures[] = { | |||
2558 | }, | 2503 | }, |
2559 | [ACLPROC3_SETACL] = { | 2504 | [ACLPROC3_SETACL] = { |
2560 | .p_proc = ACLPROC3_SETACL, | 2505 | .p_proc = ACLPROC3_SETACL, |
2561 | .p_encode = (kxdrproc_t)nfs3_xdr_enc_setacl3args, | 2506 | .p_encode = (kxdreproc_t)nfs3_xdr_enc_setacl3args, |
2562 | .p_decode = (kxdrproc_t)nfs3_xdr_dec_setacl3res, | 2507 | .p_decode = (kxdrproc_t)nfs3_xdr_dec_setacl3res, |
2563 | .p_arglen = ACL3_setaclargs_sz, | 2508 | .p_arglen = ACL3_setaclargs_sz, |
2564 | .p_replen = ACL3_setaclres_sz, | 2509 | .p_replen = ACL3_setaclres_sz, |