  | 330 | 330 | | PINT_ACCESS_DEBUG(s_op, GOSSIP_ACCESS_DEBUG, "type: metafile\n"); |
| | 331 | 331 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 332 | 332 | | " Req handle %llu refers to a metafile\n", |
  | 333 | | - | llu(s_op->u.getattr.handle)); |
| | | 333 | + | llu(s_op->req->u.getattr.handle)); |
| 334 | 334 | | |
  | 335 | | - | if (s_op->u.getattr.attrmask & PVFS_ATTR_META_DFILES) |
| | | 335 | + | if (s_op->req->u.getattr.attrmask & PVFS_ATTR_META_DFILES) |
| 336 | 336 | | { |
| | 337 | 337 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 338 | 338 | | " dspace has dfile_count of %d\n", |
| |
|
|
 |
… |
| 346 | 346 | | resp_attr->mask &= ~PVFS_ATTR_META_DFILES; |
| | 347 | 347 | | } |
| | 348 | 348 | | |
  | 349 | | - | if (s_op->u.getattr.attrmask & PVFS_ATTR_META_DIST) |
| | | 349 | + | if (s_op->req->u.getattr.attrmask & PVFS_ATTR_META_DIST) |
| 350 | 350 | | { |
| | 351 | 351 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 352 | 352 | | " dspace has dist size of %d\n", |
| |
|
|
 |
… |
| 362 | 362 | | resp_attr->mask &= ~PVFS_ATTR_META_DIST; |
| | 363 | 363 | | } |
| | 364 | 364 | | |
  | 365 | | - | if (s_op->u.getattr.attrmask & PVFS_ATTR_META_MIRROR_DFILES) |
| | | 365 | + | if (s_op->req->u.getattr.attrmask & PVFS_ATTR_META_MIRROR_DFILES) |
| 366 | 366 | | { |
| | 367 | 367 | | gossip_debug(GOSSIP_GETATTR_DEBUG,"client wants mirrored " |
| | 368 | 368 | | "handles.\n"); |
| |
|
|
 |
… |
| 392 | 392 | | |
| | 393 | 393 | | gossip_debug(GOSSIP_GETATTR_DEBUG, " handle %llu refers to " |
| | 394 | 394 | | "a datafile (size = %lld).\n", |
  | 395 | | - | llu(s_op->u.getattr.handle), |
| | | 395 | + | llu(s_op->req->u.getattr.handle), |
| 396 | 396 | | lld(resp_attr->u.data.size)); |
| | 397 | 397 | | break; |
| | 398 | 398 | | case PVFS_TYPE_DIRECTORY: |
| | 399 | 399 | | PINT_ACCESS_DEBUG(s_op, GOSSIP_ACCESS_DEBUG, "type: directory\n"); |
  | 400 | | - | if (s_op->u.getattr.attrmask & PVFS_ATTR_DIR_DIRENT_COUNT) |
| | | 400 | + | if (s_op->req->u.getattr.attrmask & PVFS_ATTR_DIR_DIRENT_COUNT) |
| 401 | 401 | | { |
| | 402 | 402 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 403 | 403 | | " getattr: dirent_count needed.\n"); |
| |
|
|
 |
… |
| 412 | 412 | | js_p->error_code = 0; |
| | 413 | 413 | | assert(resp_attr->mask & PVFS_ATTR_COMMON_ALL); |
| | 414 | 414 | | } |
  | 415 | | - | if (s_op->u.getattr.attrmask & PVFS_ATTR_DIR_HINT) |
| | | 415 | + | if (s_op->req->u.getattr.attrmask & PVFS_ATTR_DIR_HINT) |
| 416 | 416 | | { |
| | 417 | 417 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 418 | 418 | | " getattr: dfile_count needed.\n"); |
| |
|
|
 |
… |
| 432 | 432 | | gossip_debug( |
| | 433 | 433 | | GOSSIP_GETATTR_DEBUG, " handle %llu refers to " |
| | 434 | 434 | | "a dirdata object. doing nothing special\n", |
  | 435 | | - | llu(s_op->u.getattr.handle)); |
| | | 435 | + | llu(s_op->req->u.getattr.handle)); |
| 436 | 436 | | assert(resp_attr->mask & PVFS_ATTR_COMMON_ALL); |
| | 437 | 437 | | break; |
| | 438 | 438 | | case PVFS_TYPE_SYMLINK: |
| | 439 | 439 | | PINT_ACCESS_DEBUG(s_op, GOSSIP_ACCESS_DEBUG, "type: symlink\n"); |
| | 440 | 440 | | gossip_debug( |
| | 441 | 441 | | GOSSIP_GETATTR_DEBUG, " handle %llu refers to a symlink.\n", |
  | 442 | | - | llu(s_op->u.getattr.handle)); |
| | | 442 | + | llu(s_op->req->u.getattr.handle)); |
| 443 | 443 | | |
| | 444 | 444 | | /* |
| | 445 | 445 | | we'll definitely have to fetch the symlink target in this |
| |
|
|
 |
… |
| 459 | 459 | | gossip_err( |
| | 460 | 460 | | "Error: got unknown type when verifying attributes for " |
| | 461 | 461 | | "handle %llu.\n", |
  | 462 | | - | llu(s_op->u.getattr.handle)); |
| | | 462 | + | llu(s_op->req->u.getattr.handle)); |
| 463 | 463 | | js_p->error_code = -PVFS_ENXIO; |
| | 464 | 464 | | break; |
| | 465 | 465 | | } |
| |
|
|
 |
… |
| 475 | 475 | | job_id_t i; |
| | 476 | 476 | | |
| | 477 | 477 | | /* if we don't need to fill in the symlink target, skip it */ |
  | 478 | | - | if (!(s_op->u.getattr.attrmask & PVFS_ATTR_SYMLNK_TARGET)) |
| | | 478 | + | if (!(s_op->req->u.getattr.attrmask & PVFS_ATTR_SYMLNK_TARGET)) |
| 479 | 479 | | { |
| | 480 | 480 | | gossip_debug(GOSSIP_GETATTR_DEBUG, "skipping symlink target read\n"); |
| | 481 | 481 | | js_p->error_code = 0; |
| |
|
|
 |
… |
| 510 | 510 | | s_op->free_val = 0; |
| | 511 | 511 | | |
| | 512 | 512 | | ret = job_trove_keyval_read( |
  | 513 | | - | s_op->u.getattr.fs_id, s_op->u.getattr.handle, |
| | | 513 | + | s_op->req->u.getattr.fs_id, s_op->req->u.getattr.handle, |
| 514 | 514 | | &s_op->key, &s_op->val, |
| | 515 | 515 | | 0, |
| | 516 | 516 | | NULL, smcb, 0, js_p, |
| |
|
|
 |
… |
| 598 | 598 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 599 | 599 | | " reading metafile hint (coll_id = %d, " |
| | 600 | 600 | | "handle = %llu, key = %s (%d), val_buf = %p (%d))\n", |
  | 601 | | - | s_op->u.getattr.fs_id, |
| | 602 | | - | llu(s_op->u.getattr.handle), (char *)s_op->key.buffer, |
| | | 601 | + | s_op->req->u.getattr.fs_id, |
| | | 602 | + | llu(s_op->req->u.getattr.handle), (char *)s_op->key.buffer, |
| 603 | 603 | | s_op->key.buffer_sz, s_op->val.buffer, |
| | 604 | 604 | | s_op->val.buffer_sz); |
| | 605 | 605 | | |
| | 606 | 606 | | ret = job_trove_keyval_read( |
  | 607 | | - | s_op->u.getattr.fs_id, s_op->u.getattr.handle, |
| | | 607 | + | s_op->req->u.getattr.fs_id, s_op->req->u.getattr.handle, |
| 608 | 608 | | &s_op->key, &s_op->val, |
| | 609 | 609 | | 0, |
| | 610 | 610 | | NULL, smcb, 0, js_p, |
| |
|
|
 |
… |
| 626 | 626 | | js_p->error_code = 0; |
| | 627 | 627 | | |
| | 628 | 628 | | /* if we don't need to fill in the dfiles, skip them */ |
  | 629 | | - | if (!(s_op->u.getattr.attrmask & PVFS_ATTR_META_DFILES)) |
| | | 629 | + | if (!(s_op->req->u.getattr.attrmask & PVFS_ATTR_META_DFILES)) |
| 630 | 630 | | { |
| | 631 | 631 | | gossip_debug(GOSSIP_GETATTR_DEBUG, "skipping data handle read\n"); |
| | 632 | 632 | | return SM_ACTION_COMPLETE; |
| |
|
|
 |
… |
| 659 | 659 | | (int)s_op->resp.u.getattr.attr.u.meta.dist_size); |
| | 660 | 660 | | |
| | 661 | 661 | | gossip_err("handle: %llu (%llx), fsid: %d.\n", |
  | 662 | | - | llu(s_op->u.getattr.handle), llu(s_op->u.getattr.handle), |
| | 663 | | - | (int)s_op->u.getattr.fs_id); |
| | | 662 | + | llu(s_op->req->u.getattr.handle), llu(s_op->req->u.getattr.handle), |
| | | 663 | + | (int)s_op->req->u.getattr.fs_id); |
| 664 | 664 | | |
| | 665 | 665 | | /*If we hit an error the DIST & DFILES are no longer valid*/ |
| | 666 | 666 | | s_op->resp.u.getattr.attr.mask &= ~PVFS_ATTR_META_DIST; |
| |
|
|
 |
… |
| 699 | 699 | | gossip_debug(GOSSIP_GETATTR_DEBUG, |
| | 700 | 700 | | " reading %d datafile handles (coll_id = %d, " |
| | 701 | 701 | | "handle = %llu, key = %s (%d), val_buf = %p (%d))\n", |
  | 702 | | - | dfile_count, s_op->u.getattr.fs_id, |
| | 703 | | - | llu(s_op->u.getattr.handle), (char *)s_op->key.buffer, |
| | | 702 | + | dfile_count, s_op->req->u.getattr.fs_id, |
| | | 703 | + | llu(s_op->req->u.getattr.handle), (char *)s_op->key.buffer, |
| 704 | 704 | | s_op->key.buffer_sz, s_op->val.buffer, |
| | 705 | 705 | | s_op->val.buffer_sz); |
| | 706 | 706 | | |
| | 707 | 707 | | ret = job_trove_keyval_read( |
  | 708 | | - | s_op->u.getattr.fs_id |
| | 709 | | - | ,s_op->u.getattr.handle |
| | | 708 | + | s_op->req->u.getattr.fs_id |
| | | 709 | + | ,s_op->req->u.getattr.handle |
| 710 | 710 | | ,&s_op->key |
| | 711 | 711 | | ,&s_op->val |
| | 712 | 712 | | ,0 |
| |
|
|
 |
… |
| 738 | 738 | | { |
| | 739 | 739 | | gossip_debug(GOSSIP_MIRROR_DEBUG,"\tMirroring is NOT turned on " |
| | 740 | 740 | | "for this handle(%llu)..\n" |
  | 741 | | - | ,llu(s_op->u.getattr.handle)); |
| | | 741 | + | ,llu(s_op->req->u.getattr.handle)); |
| 742 | 742 | | js_p->error_code = SKIP_NEXT_STATE; |
| | 743 | 743 | | |
| | 744 | 744 | | return SM_ACTION_COMPLETE; |
| | 745 | 745 | | } |
| | 746 | 746 | | |
| | 747 | 747 | | gossip_debug(GOSSIP_MIRROR_DEBUG,"\tMirroring IS turned on for this " |
| | 748 | 748 | | "handle(%llu)...\n" |
  | 749 | | - | ,llu(s_op->u.getattr.handle)); |
| | | 749 | + | ,llu(s_op->req->u.getattr.handle)); |
| 750 | 750 | | |
| | 751 | 751 | | js_p->error_code = 0; |
| | 752 | 752 | | |
| |
|
|
 |
… |
| 771 | 771 | | |
| | 772 | 772 | | /* submit job to read the value */ |
| | 773 | 773 | | ret = job_trove_keyval_read( |
  | 774 | | - | s_op->u.getattr.fs_id |
| | 775 | | - | ,s_op->u.getattr.handle |
| | | 774 | + | s_op->req->u.getattr.fs_id |
| | | 775 | + | ,s_op->req->u.getattr.handle |
| 776 | 776 | | ,&s_op->key |
| | 777 | 777 | | ,&s_op->val |
| | 778 | 778 | | ,0 |
| |
|
|
 |
… |
| 941 | 941 | | |
| | 942 | 942 | | /* call job to retrieve the key/val pairs */ |
| | 943 | 943 | | ret = job_trove_keyval_read_list( |
  | 944 | | - | s_op->u.getattr.fs_id |
| | 945 | | - | ,s_op->u.getattr.handle |
| | | 944 | + | s_op->req->u.getattr.fs_id |
| | | 945 | + | ,s_op->req->u.getattr.handle |
| 946 | 946 | | ,s_op->key_a |
| | 947 | 947 | | ,s_op->val_a |
| | 948 | 948 | | ,s_op->error_a |
| |
|
|
 |
… |
| 1118 | 1118 | | js_p->error_code = 0; |
| | 1119 | 1119 | | |
| | 1120 | 1120 | | /* if we don't need to fill in the distribution, skip it */ |
  | 1121 | | - | if (!(s_op->u.getattr.attrmask & PVFS_ATTR_META_DIST)) |
| | | 1121 | + | if (!(s_op->req->u.getattr.attrmask & PVFS_ATTR_META_DIST)) |
| 1122 | 1122 | | { |
| | 1123 | 1123 | | gossip_debug(GOSSIP_GETATTR_DEBUG, "skipping data handle " |
| | 1124 | 1124 | | "distribution read\n"); |
| |
|
|
 |
… |
| 1136 | 1136 | | if (s_op->resp.u.getattr.attr.u.meta.dist_size < 1) |
| | 1137 | 1137 | | { |
| | 1138 | 1138 | | gossip_err("Cannot Read Dist! Got an invalid dist size for " |
  | 1139 | | - | "handle %llu,%d\n",llu(s_op->u.getattr.handle), |
| | 1140 | | - | s_op->u.getattr.fs_id); |
| | | 1139 | + | "handle %llu,%d\n",llu(s_op->req->u.getattr.handle), |
| | | 1140 | + | s_op->req->u.getattr.fs_id); |
| 1141 | 1141 | | js_p->error_code = -PVFS_EINVAL; |
| | 1142 | 1142 | | return SM_ACTION_COMPLETE; |
| | 1143 | 1143 | | } |
| |
|
|
 |
… |
| 1162 | 1162 | | s_op->free_val = 1; |
| | 1163 | 1163 | | |
| | 1164 | 1164 | | ret = job_trove_keyval_read( |
  | 1165 | | - | s_op->u.getattr.fs_id, s_op->u.getattr.handle, |
| | | 1165 | + | s_op->req->u.getattr.fs_id, s_op->req->u.getattr.handle, |
| 1166 | 1166 | | &(s_op->key), &(s_op->val), |
| | 1167 | 1167 | | 0, |
| | 1168 | 1168 | | NULL, |
| |
|
|
 |
… |
| 1204 | 1204 | | s_op->resp.u.getattr.attr.mask &= (~(PVFS_ATTR_META_UNSTUFFED)); |
| | 1205 | 1205 | | |
| | 1206 | 1206 | | return(job_trove_dspace_getattr( |
  | 1207 | | - | s_op->u.getattr.fs_id, |
| | | 1207 | + | s_op->req->u.getattr.fs_id, |
| 1208 | 1208 | | s_op->resp.u.getattr.attr.u.meta.dfile_array[0], |
| | 1209 | 1209 | | smcb, |
| | 1210 | 1210 | | &s_op->ds_attr, |
| |
|
|
 |
… |
| 1248 | 1248 | | return SM_ACTION_COMPLETE; |
| | 1249 | 1249 | | } |
| | 1250 | 1250 | | |
  | 1251 | | - | if(s_op->u.getattr.attrmask & PVFS_ATTR_META_DIST) |
| | | 1251 | + | if(s_op->req->u.getattr.attrmask & PVFS_ATTR_META_DIST) |
| 1252 | 1252 | | { |
| | 1253 | 1253 | | /* successfully read dist key; make sure we got something valid */ |
| | 1254 | 1254 | | if(s_op->val.read_sz != s_op->val.buffer_sz) |
| |
|
|
 |
… |
| 1273 | 1273 | | |
| | 1274 | 1274 | | if(resp_attr->u.meta.dist == 0) { |
| | 1275 | 1275 | | gossip_err("Found dist of 0 for handle %llu,%d\n", |
  | 1276 | | - | llu(s_op->u.getattr.handle), s_op->u.getattr.fs_id); |
| | | 1276 | + | llu(s_op->req->u.getattr.handle), s_op->req->u.getattr.fs_id); |
| 1277 | 1277 | | PVFS_perror("Metafile getattr_setup_resp",js_p->error_code); |
| | 1278 | 1278 | | js_p->error_code = -PVFS_EIO; |
| | 1279 | 1279 | | return SM_ACTION_COMPLETE; |
| |
|
|
 |
… |
| 1371 | 1371 | | else |
| | 1372 | 1372 | | { |
| | 1373 | 1373 | | gossip_err("Failed to retrieve symlink target path for " |
  | 1374 | | - | "handle %llu,%d\n",llu(s_op->u.getattr.handle), |
| | 1375 | | - | s_op->u.getattr.fs_id); |
| | | 1374 | + | "handle %llu,%d\n",llu(s_op->req->u.getattr.handle), |
| | | 1375 | + | s_op->req->u.getattr.fs_id); |
| 1376 | 1376 | | PVFS_perror("Symlink retrieval failure",js_p->error_code); |
| | 1377 | 1377 | | |
| | 1378 | 1378 | | free_nested_getattr_data(s_op); |
| |
|
|
 |
… |
| 1474 | 1474 | | static PINT_sm_action getattr_setup_op( |
| | 1475 | 1475 | | struct PINT_smcb *smcb, job_status_s *js_p) |
| | 1476 | 1476 | | { |
  | 1477 | | - | struct PINT_server_op *s_op = PINT_sm_frame(smcb, PINT_FRAME_CURRENT); |
| | 1478 | | - | s_op->u.getattr.handle = s_op->req->u.getattr.handle; |
| | 1479 | | - | s_op->u.getattr.fs_id = s_op->req->u.getattr.fs_id; |
| | 1480 | | - | s_op->u.getattr.attrmask = s_op->req->u.getattr.attrmask; |
| | 1481 | | - | |
| 1482 | 1477 | | js_p->error_code = 0; |
| | 1483 | 1478 | | return SM_ACTION_COMPLETE; |
| | 1484 | 1479 | | } |
| |
|
|
 |
… |
| 1489 | 1484 | | struct PINT_server_op *s_op = PINT_sm_frame(smcb, PINT_FRAME_CURRENT); |
| | 1490 | 1485 | | |
| | 1491 | 1486 | | if((js_p->error_code == 0) && |
  | 1492 | | - | (s_op->u.getattr.attrmask & PVFS_ATTR_META_DFILES)) |
| | | 1487 | + | (s_op->req->u.getattr.attrmask & PVFS_ATTR_META_DFILES)) |
| 1493 | 1488 | | { |
| | 1494 | 1489 | | /* successfully read datafile key; make sure we got something valid */ |
| | 1495 | 1490 | | if(s_op->val.read_sz != s_op->val.buffer_sz) |
| |
|
|
 |
… |
| 1534 | 1529 | | s_op->free_val = 0; |
| | 1535 | 1530 | | |
| | 1536 | 1531 | | ret = job_trove_keyval_read( |
  | 1537 | | - | s_op->u.getattr.fs_id, s_op->u.getattr.handle, |
| | | 1532 | + | s_op->req->u.getattr.fs_id, s_op->req->u.getattr.handle, |
| 1538 | 1533 | | &s_op->key, &s_op->val, |
| | 1539 | 1534 | | 0, |
| | 1540 | 1535 | | NULL, |
| |
|
|
 |
… |
| 1554 | 1549 | | int ret; |
| | 1555 | 1550 | | job_id_t tmp_id; |
| | 1556 | 1551 | | |
  | 1557 | | - | if (!(s_op->u.getattr.attrmask & PVFS_ATTR_DIR_DIRENT_COUNT)) |
| | | 1552 | + | if (!(s_op->req->u.getattr.attrmask & PVFS_ATTR_DIR_DIRENT_COUNT)) |
| 1558 | 1553 | | { |
| | 1559 | 1554 | | /* the caller didn't really want the dirent count; skip to get |
| | 1560 | 1555 | | * directory hints |
| |
|
|
 |
… |
| 1563 | 1558 | | return SM_ACTION_COMPLETE; |
| | 1564 | 1559 | | } |
| | 1565 | 1560 | | ret = job_trove_keyval_get_handle_info( |
  | 1566 | | - | s_op->u.getattr.fs_id, |
| | | 1561 | + | s_op->req->u.getattr.fs_id, |
| 1567 | 1562 | | s_op->u.getattr.dirent_handle, |
| | 1568 | 1563 | | TROVE_KEYVAL_HANDLE_COUNT | |
| | 1569 | 1564 | | 0, |
| |
|
|
 |
… |
| 1612 | 1607 | | * function |
| | 1613 | 1608 | | */ |
| | 1614 | 1609 | | |
  | 1615 | | - | if (!(s_op->u.getattr.attrmask & PVFS_ATTR_DIR_HINT)) |
| | | 1610 | + | if (!(s_op->req->u.getattr.attrmask & PVFS_ATTR_DIR_HINT)) |
| 1616 | 1611 | | { |
| | 1617 | 1612 | | /* the caller didn't really want the dir hints; skip |
| | 1618 | 1613 | | */ |
| |
|
|
 |
… |
| 1626 | 1621 | | Trove_Special_Keys[DIST_NAME_KEY].key, |
| | 1627 | 1622 | | Trove_Special_Keys[DIST_PARAMS_KEY].key, |
| | 1628 | 1623 | | Trove_Special_Keys[NUM_DFILES_KEY].key, |
  | 1629 | | - | s_op->u.getattr.fs_id, llu(s_op->u.getattr.handle)); |
| | | 1624 | + | s_op->req->u.getattr.fs_id, llu(s_op->req->u.getattr.handle)); |
| 1630 | 1625 | | |
| | 1631 | 1626 | | s_op->resp.u.getattr.attr.u.dir.hint.dist_params = |
| | 1632 | 1627 | | (char *) calloc(1, PVFS_REQ_LIMIT_DIST_BYTES); |
| |
|
|
 |
… |
| 1703 | 1698 | | |
| | 1704 | 1699 | | js_p->error_code = 0; |
| | 1705 | 1700 | | ret = job_trove_keyval_read_list( |
  | 1706 | | - | s_op->u.getattr.fs_id, |
| | 1707 | | - | s_op->u.getattr.handle, |
| | | 1701 | + | s_op->req->u.getattr.fs_id, |
| | | 1702 | + | s_op->req->u.getattr.handle, |
| 1708 | 1703 | | s_op->key_a, s_op->val_a, s_op->u.getattr.err_array, NUM_SPECIAL_KEYS, |
| | 1709 | 1704 | | 0, NULL, smcb, 0, js_p, &tmp_id, |
| | 1710 | 1705 | | server_job_context, s_op->req->hints); |
| |
|
|
 |
… |
| 1825 | 1820 | | s_op->free_val = 0; |
| | 1826 | 1821 | | |
| | 1827 | 1822 | | return(job_trove_keyval_read( |
  | 1828 | | - | s_op->u.getattr.fs_id, |
| | 1829 | | - | s_op->u.getattr.handle, |
| | | 1823 | + | s_op->req->u.getattr.fs_id, |
| | | 1824 | + | s_op->req->u.getattr.handle, |
  | 1830 | 1825 | | &(s_op->key), |
| | 1831 | 1826 | | &(s_op->val), |
| | 1832 | 1827 | | 0, |