aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2014-06-02 12:32:51 -0400
committerJ. Bruce Fields <bfields@redhat.com>2014-06-06 19:22:47 -0400
commit06553991e7757c668efb3bce9dcc740f31aead60 (patch)
treee91f6074262f6b14b3dfef6a45524884830222e0
parent05638dc73af2586517468b1159d4b76e90607359 (diff)
nfsd4: kill READ32
While we're here, let's kill off a couple of the read-side macros. Leaving the more complicated ones alone for now. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r--fs/nfsd/nfs4xdr.c255
1 files changed, 127 insertions, 128 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index a7268b4a4954..a23fa002e0d0 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -98,7 +98,6 @@ xdr_error: \
98 status = nfserr_bad_xdr; \ 98 status = nfserr_bad_xdr; \
99 goto out 99 goto out
100 100
101#define READ32(x) (x) = ntohl(*p++)
102#define READ64(x) do { \ 101#define READ64(x) do { \
103 (x) = (u64)ntohl(*p++) << 32; \ 102 (x) = (u64)ntohl(*p++) << 32; \
104 (x) |= ntohl(*p++); \ 103 (x) |= ntohl(*p++); \
@@ -248,17 +247,17 @@ nfsd4_decode_bitmap(struct nfsd4_compoundargs *argp, u32 *bmval)
248 bmval[2] = 0; 247 bmval[2] = 0;
249 248
250 READ_BUF(4); 249 READ_BUF(4);
251 READ32(bmlen); 250 bmlen = be32_to_cpup(p++);
252 if (bmlen > 1000) 251 if (bmlen > 1000)
253 goto xdr_error; 252 goto xdr_error;
254 253
255 READ_BUF(bmlen << 2); 254 READ_BUF(bmlen << 2);
256 if (bmlen > 0) 255 if (bmlen > 0)
257 READ32(bmval[0]); 256 bmval[0] = be32_to_cpup(p++);
258 if (bmlen > 1) 257 if (bmlen > 1)
259 READ32(bmval[1]); 258 bmval[1] = be32_to_cpup(p++);
260 if (bmlen > 2) 259 if (bmlen > 2)
261 READ32(bmval[2]); 260 bmval[2] = be32_to_cpup(p++);
262 261
263 DECODE_TAIL; 262 DECODE_TAIL;
264} 263}
@@ -278,7 +277,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
278 return status; 277 return status;
279 278
280 READ_BUF(4); 279 READ_BUF(4);
281 READ32(expected_len); 280 expected_len = be32_to_cpup(p++);
282 281
283 if (bmval[0] & FATTR4_WORD0_SIZE) { 282 if (bmval[0] & FATTR4_WORD0_SIZE) {
284 READ_BUF(8); 283 READ_BUF(8);
@@ -291,7 +290,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
291 struct nfs4_ace *ace; 290 struct nfs4_ace *ace;
292 291
293 READ_BUF(4); len += 4; 292 READ_BUF(4); len += 4;
294 READ32(nace); 293 nace = be32_to_cpup(p++);
295 294
296 if (nace > NFS4_ACL_MAX) 295 if (nace > NFS4_ACL_MAX)
297 return nfserr_fbig; 296 return nfserr_fbig;
@@ -305,10 +304,10 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
305 (*acl)->naces = nace; 304 (*acl)->naces = nace;
306 for (ace = (*acl)->aces; ace < (*acl)->aces + nace; ace++) { 305 for (ace = (*acl)->aces; ace < (*acl)->aces + nace; ace++) {
307 READ_BUF(16); len += 16; 306 READ_BUF(16); len += 16;
308 READ32(ace->type); 307 ace->type = be32_to_cpup(p++);
309 READ32(ace->flag); 308 ace->flag = be32_to_cpup(p++);
310 READ32(ace->access_mask); 309 ace->access_mask = be32_to_cpup(p++);
311 READ32(dummy32); 310 dummy32 = be32_to_cpup(p++);
312 READ_BUF(dummy32); 311 READ_BUF(dummy32);
313 len += XDR_QUADLEN(dummy32) << 2; 312 len += XDR_QUADLEN(dummy32) << 2;
314 READMEM(buf, dummy32); 313 READMEM(buf, dummy32);
@@ -330,14 +329,14 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
330 if (bmval[1] & FATTR4_WORD1_MODE) { 329 if (bmval[1] & FATTR4_WORD1_MODE) {
331 READ_BUF(4); 330 READ_BUF(4);
332 len += 4; 331 len += 4;
333 READ32(iattr->ia_mode); 332 iattr->ia_mode = be32_to_cpup(p++);
334 iattr->ia_mode &= (S_IFMT | S_IALLUGO); 333 iattr->ia_mode &= (S_IFMT | S_IALLUGO);
335 iattr->ia_valid |= ATTR_MODE; 334 iattr->ia_valid |= ATTR_MODE;
336 } 335 }
337 if (bmval[1] & FATTR4_WORD1_OWNER) { 336 if (bmval[1] & FATTR4_WORD1_OWNER) {
338 READ_BUF(4); 337 READ_BUF(4);
339 len += 4; 338 len += 4;
340 READ32(dummy32); 339 dummy32 = be32_to_cpup(p++);
341 READ_BUF(dummy32); 340 READ_BUF(dummy32);
342 len += (XDR_QUADLEN(dummy32) << 2); 341 len += (XDR_QUADLEN(dummy32) << 2);
343 READMEM(buf, dummy32); 342 READMEM(buf, dummy32);
@@ -348,7 +347,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
348 if (bmval[1] & FATTR4_WORD1_OWNER_GROUP) { 347 if (bmval[1] & FATTR4_WORD1_OWNER_GROUP) {
349 READ_BUF(4); 348 READ_BUF(4);
350 len += 4; 349 len += 4;
351 READ32(dummy32); 350 dummy32 = be32_to_cpup(p++);
352 READ_BUF(dummy32); 351 READ_BUF(dummy32);
353 len += (XDR_QUADLEN(dummy32) << 2); 352 len += (XDR_QUADLEN(dummy32) << 2);
354 READMEM(buf, dummy32); 353 READMEM(buf, dummy32);
@@ -359,7 +358,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
359 if (bmval[1] & FATTR4_WORD1_TIME_ACCESS_SET) { 358 if (bmval[1] & FATTR4_WORD1_TIME_ACCESS_SET) {
360 READ_BUF(4); 359 READ_BUF(4);
361 len += 4; 360 len += 4;
362 READ32(dummy32); 361 dummy32 = be32_to_cpup(p++);
363 switch (dummy32) { 362 switch (dummy32) {
364 case NFS4_SET_TO_CLIENT_TIME: 363 case NFS4_SET_TO_CLIENT_TIME:
365 /* We require the high 32 bits of 'seconds' to be 0, and we ignore 364 /* We require the high 32 bits of 'seconds' to be 0, and we ignore
@@ -367,7 +366,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
367 READ_BUF(12); 366 READ_BUF(12);
368 len += 12; 367 len += 12;
369 READ64(iattr->ia_atime.tv_sec); 368 READ64(iattr->ia_atime.tv_sec);
370 READ32(iattr->ia_atime.tv_nsec); 369 iattr->ia_atime.tv_nsec = be32_to_cpup(p++);
371 if (iattr->ia_atime.tv_nsec >= (u32)1000000000) 370 if (iattr->ia_atime.tv_nsec >= (u32)1000000000)
372 return nfserr_inval; 371 return nfserr_inval;
373 iattr->ia_valid |= (ATTR_ATIME | ATTR_ATIME_SET); 372 iattr->ia_valid |= (ATTR_ATIME | ATTR_ATIME_SET);
@@ -382,7 +381,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
382 if (bmval[1] & FATTR4_WORD1_TIME_MODIFY_SET) { 381 if (bmval[1] & FATTR4_WORD1_TIME_MODIFY_SET) {
383 READ_BUF(4); 382 READ_BUF(4);
384 len += 4; 383 len += 4;
385 READ32(dummy32); 384 dummy32 = be32_to_cpup(p++);
386 switch (dummy32) { 385 switch (dummy32) {
387 case NFS4_SET_TO_CLIENT_TIME: 386 case NFS4_SET_TO_CLIENT_TIME:
388 /* We require the high 32 bits of 'seconds' to be 0, and we ignore 387 /* We require the high 32 bits of 'seconds' to be 0, and we ignore
@@ -390,7 +389,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
390 READ_BUF(12); 389 READ_BUF(12);
391 len += 12; 390 len += 12;
392 READ64(iattr->ia_mtime.tv_sec); 391 READ64(iattr->ia_mtime.tv_sec);
393 READ32(iattr->ia_mtime.tv_nsec); 392 iattr->ia_mtime.tv_nsec = be32_to_cpup(p++);
394 if (iattr->ia_mtime.tv_nsec >= (u32)1000000000) 393 if (iattr->ia_mtime.tv_nsec >= (u32)1000000000)
395 return nfserr_inval; 394 return nfserr_inval;
396 iattr->ia_valid |= (ATTR_MTIME | ATTR_MTIME_SET); 395 iattr->ia_valid |= (ATTR_MTIME | ATTR_MTIME_SET);
@@ -408,13 +407,13 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval,
408 if (bmval[2] & FATTR4_WORD2_SECURITY_LABEL) { 407 if (bmval[2] & FATTR4_WORD2_SECURITY_LABEL) {
409 READ_BUF(4); 408 READ_BUF(4);
410 len += 4; 409 len += 4;
411 READ32(dummy32); /* lfs: we don't use it */ 410 dummy32 = be32_to_cpup(p++); /* lfs: we don't use it */
412 READ_BUF(4); 411 READ_BUF(4);
413 len += 4; 412 len += 4;
414 READ32(dummy32); /* pi: we don't use it either */ 413 dummy32 = be32_to_cpup(p++); /* pi: we don't use it either */
415 READ_BUF(4); 414 READ_BUF(4);
416 len += 4; 415 len += 4;
417 READ32(dummy32); 416 dummy32 = be32_to_cpup(p++);
418 READ_BUF(dummy32); 417 READ_BUF(dummy32);
419 if (dummy32 > NFSD4_MAX_SEC_LABEL_LEN) 418 if (dummy32 > NFSD4_MAX_SEC_LABEL_LEN)
420 return nfserr_badlabel; 419 return nfserr_badlabel;
@@ -445,7 +444,7 @@ nfsd4_decode_stateid(struct nfsd4_compoundargs *argp, stateid_t *sid)
445 DECODE_HEAD; 444 DECODE_HEAD;
446 445
447 READ_BUF(sizeof(stateid_t)); 446 READ_BUF(sizeof(stateid_t));
448 READ32(sid->si_generation); 447 sid->si_generation = be32_to_cpup(p++);
449 COPYMEM(&sid->si_opaque, sizeof(stateid_opaque_t)); 448 COPYMEM(&sid->si_opaque, sizeof(stateid_opaque_t));
450 449
451 DECODE_TAIL; 450 DECODE_TAIL;
@@ -457,7 +456,7 @@ nfsd4_decode_access(struct nfsd4_compoundargs *argp, struct nfsd4_access *access
457 DECODE_HEAD; 456 DECODE_HEAD;
458 457
459 READ_BUF(4); 458 READ_BUF(4);
460 READ32(access->ac_req_access); 459 access->ac_req_access = be32_to_cpup(p++);
461 460
462 DECODE_TAIL; 461 DECODE_TAIL;
463} 462}
@@ -472,7 +471,7 @@ static __be32 nfsd4_decode_cb_sec(struct nfsd4_compoundargs *argp, struct nfsd4_
472 471
473 /* callback_sec_params4 */ 472 /* callback_sec_params4 */
474 READ_BUF(4); 473 READ_BUF(4);
475 READ32(nr_secflavs); 474 nr_secflavs = be32_to_cpup(p++);
476 if (nr_secflavs) 475 if (nr_secflavs)
477