diff options
| author | J. Bruce Fields <bfields@redhat.com> | 2014-06-02 12:32:51 -0400 |
|---|---|---|
| committer | J. Bruce Fields <bfields@redhat.com> | 2014-06-06 19:22:47 -0400 |
| commit | 06553991e7757c668efb3bce9dcc740f31aead60 (patch) | |
| tree | e91f6074262f6b14b3dfef6a45524884830222e0 | |
| parent | 05638dc73af2586517468b1159d4b76e90607359 (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.c | 255 |
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 | |||
