Changeset 984a9ba in mainline for uspace/srv/fs
- Timestamp:
- 2018-07-05T09:34:09Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 63d46341
- Parents:
- 76f566d
- Location:
- uspace/srv/fs
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/cdfs/cdfs_ops.c
r76f566d r984a9ba 1273 1273 } 1274 1274 1275 cap_call_handle_t chandle;1275 ipc_call_t call; 1276 1276 size_t len; 1277 if (!async_data_read_receive(&c handle, &len)) {1278 async_answer_0( chandle, EINVAL);1277 if (!async_data_read_receive(&call, &len)) { 1278 async_answer_0(&call, EINVAL); 1279 1279 return EINVAL; 1280 1280 } … … 1283 1283 if (pos >= node->size) { 1284 1284 *rbytes = 0; 1285 async_data_read_finalize( chandle, NULL, 0);1285 async_data_read_finalize(&call, NULL, 0); 1286 1286 } else { 1287 1287 cdfs_lba_t lba = pos / BLOCK_SIZE; … … 1295 1295 BLOCK_FLAGS_NONE); 1296 1296 if (rc != EOK) { 1297 async_answer_0( chandle, rc);1297 async_answer_0(&call, rc); 1298 1298 return rc; 1299 1299 } 1300 1300 1301 async_data_read_finalize( chandle, block->data + offset,1301 async_data_read_finalize(&call, block->data + offset, 1302 1302 *rbytes); 1303 1303 rc = block_put(block); … … 1308 1308 link_t *link = list_nth(&node->cs_list, pos); 1309 1309 if (link == NULL) { 1310 async_answer_0( chandle, ENOENT);1310 async_answer_0(&call, ENOENT); 1311 1311 return ENOENT; 1312 1312 } … … 1316 1316 1317 1317 *rbytes = 1; 1318 async_data_read_finalize( chandle, dentry->name,1318 async_data_read_finalize(&call, dentry->name, 1319 1319 str_size(dentry->name) + 1); 1320 1320 } -
uspace/srv/fs/exfat/exfat_ops.c
r76f566d r984a9ba 1341 1341 nodep = EXFAT_NODE(fn); 1342 1342 1343 cap_call_handle_t chandle;1343 ipc_call_t call; 1344 1344 size_t len; 1345 if (!async_data_read_receive(&c handle, &len)) {1345 if (!async_data_read_receive(&call, &len)) { 1346 1346 exfat_node_put(fn); 1347 async_answer_0( chandle, EINVAL);1347 async_answer_0(&call, EINVAL); 1348 1348 return EINVAL; 1349 1349 } … … 1360 1360 /* reading beyond the EOF */ 1361 1361 bytes = 0; 1362 (void) async_data_read_finalize( chandle, NULL, 0);1362 (void) async_data_read_finalize(&call, NULL, 0); 1363 1363 } else { 1364 1364 bytes = min(len, BPS(bs) - pos % BPS(bs)); … … 1368 1368 if (rc != EOK) { 1369 1369 exfat_node_put(fn); 1370 async_answer_0( chandle, rc);1370 async_answer_0(&call, rc); 1371 1371 return rc; 1372 1372 } 1373 (void) async_data_read_finalize( chandle,1373 (void) async_data_read_finalize(&call, 1374 1374 b->data + pos % BPS(bs), bytes); 1375 1375 rc = block_put(b); … … 1381 1381 } else { 1382 1382 if (nodep->type != EXFAT_DIRECTORY) { 1383 async_answer_0( chandle, ENOTSUP);1383 async_answer_0(&call, ENOTSUP); 1384 1384 return ENOTSUP; 1385 1385 } … … 1415 1415 err: 1416 1416 (void) exfat_node_put(fn); 1417 async_answer_0( chandle, rc);1417 async_answer_0(&call, rc); 1418 1418 return rc; 1419 1419 … … 1423 1423 goto err; 1424 1424 rc = exfat_node_put(fn); 1425 async_answer_0( chandle, rc != EOK ? rc : ENOENT);1425 async_answer_0(&call, rc != EOK ? rc : ENOENT); 1426 1426 *rbytes = 0; 1427 1427 return rc != EOK ? rc : ENOENT; … … 1432 1432 if (rc != EOK) 1433 1433 goto err; 1434 (void) async_data_read_finalize( chandle, name,1434 (void) async_data_read_finalize(&call, name, 1435 1435 str_size(name) + 1); 1436 1436 bytes = (pos - spos) + 1; … … 1485 1485 nodep = EXFAT_NODE(fn); 1486 1486 1487 cap_call_handle_t chandle;1487 ipc_call_t call; 1488 1488 size_t len; 1489 if (!async_data_write_receive(&c handle, &len)) {1489 if (!async_data_write_receive(&call, &len)) { 1490 1490 (void) exfat_node_put(fn); 1491 async_answer_0( chandle, EINVAL);1491 async_answer_0(&call, EINVAL); 1492 1492 return EINVAL; 1493 1493 } … … 1514 1514 /* could not expand node */ 1515 1515 (void) exfat_node_put(fn); 1516 async_answer_0( chandle, rc);1516 async_answer_0(&call, rc); 1517 1517 return rc; 1518 1518 } … … 1533 1533 if (rc != EOK) { 1534 1534 (void) exfat_node_put(fn); 1535 async_answer_0( chandle, rc);1536 return rc; 1537 } 1538 1539 (void) async_data_write_finalize( chandle,1535 async_answer_0(&call, rc); 1536 return rc; 1537 } 1538 1539 (void) async_data_write_finalize(&call, 1540 1540 b->data + pos % BPS(bs), bytes); 1541 1541 b->dirty = true; /* need to sync block */ -
uspace/srv/fs/fat/fat_ops.c
r76f566d r984a9ba 1226 1226 nodep = FAT_NODE(fn); 1227 1227 1228 cap_call_handle_t chandle;1228 ipc_call_t call; 1229 1229 size_t len; 1230 if (!async_data_read_receive(&c handle, &len)) {1230 if (!async_data_read_receive(&call, &len)) { 1231 1231 fat_node_put(fn); 1232 async_answer_0( chandle, EINVAL);1232 async_answer_0(&call, EINVAL); 1233 1233 return EINVAL; 1234 1234 } … … 1245 1245 /* reading beyond the EOF */ 1246 1246 bytes = 0; 1247 (void) async_data_read_finalize( chandle, NULL, 0);1247 (void) async_data_read_finalize(&call, NULL, 0); 1248 1248 } else { 1249 1249 bytes = min(len, BPS(bs) - pos % BPS(bs)); … … 1253 1253 if (rc != EOK) { 1254 1254 fat_node_put(fn); 1255 async_answer_0( chandle, rc);1255 async_answer_0(&call, rc); 1256 1256 return rc; 1257 1257 } 1258 (void) async_data_read_finalize( chandle,1258 (void) async_data_read_finalize(&call, 1259 1259 b->data + pos % BPS(bs), bytes); 1260 1260 rc = block_put(b); … … 1291 1291 err: 1292 1292 (void) fat_node_put(fn); 1293 async_answer_0( chandle, rc);1293 async_answer_0(&call, rc); 1294 1294 return rc; 1295 1295 … … 1299 1299 goto err; 1300 1300 rc = fat_node_put(fn); 1301 async_answer_0( chandle, rc != EOK ? rc : ENOENT);1301 async_answer_0(&call, rc != EOK ? rc : ENOENT); 1302 1302 *rbytes = 0; 1303 1303 return rc != EOK ? rc : ENOENT; … … 1308 1308 if (rc != EOK) 1309 1309 goto err; 1310 (void) async_data_read_finalize( chandle, name,1310 (void) async_data_read_finalize(&call, name, 1311 1311 str_size(name) + 1); 1312 1312 bytes = (pos - spos) + 1; … … 1338 1338 nodep = FAT_NODE(fn); 1339 1339 1340 cap_call_handle_t chandle;1340 ipc_call_t call; 1341 1341 size_t len; 1342 if (!async_data_write_receive(&c handle, &len)) {1342 if (!async_data_write_receive(&call, &len)) { 1343 1343 (void) fat_node_put(fn); 1344 async_answer_0( chandle, EINVAL);1344 async_answer_0(&call, EINVAL); 1345 1345 return EINVAL; 1346 1346 } … … 1370 1370 if (rc != EOK) { 1371 1371 (void) fat_node_put(fn); 1372 async_answer_0( chandle, rc);1372 async_answer_0(&call, rc); 1373 1373 return rc; 1374 1374 } … … 1376 1376 if (rc != EOK) { 1377 1377 (void) fat_node_put(fn); 1378 async_answer_0( chandle, rc);1378 async_answer_0(&call, rc); 1379 1379 return rc; 1380 1380 } 1381 (void) async_data_write_finalize( chandle,1381 (void) async_data_write_finalize(&call, 1382 1382 b->data + pos % BPS(bs), bytes); 1383 1383 b->dirty = true; /* need to sync block */ … … 1409 1409 /* could not allocate a chain of nclsts clusters */ 1410 1410 (void) fat_node_put(fn); 1411 async_answer_0( chandle, rc);1411 async_answer_0(&call, rc); 1412 1412 return rc; 1413 1413 } … … 1417 1417 (void) fat_free_clusters(bs, service_id, mcl); 1418 1418 (void) fat_node_put(fn); 1419 async_answer_0( chandle, rc);1419 async_answer_0(&call, rc); 1420 1420 return rc; 1421 1421 } … … 1425 1425 (void) fat_free_clusters(bs, service_id, mcl); 1426 1426 (void) fat_node_put(fn); 1427 async_answer_0( chandle, rc);1427 async_answer_0(&call, rc); 1428 1428 return rc; 1429 1429 } 1430 (void) async_data_write_finalize( chandle,1430 (void) async_data_write_finalize(&call, 1431 1431 b->data + pos % BPS(bs), bytes); 1432 1432 b->dirty = true; /* need to sync block */ -
uspace/srv/fs/locfs/locfs_ops.c
r76f566d r984a9ba 478 478 { 479 479 if (index == 0) { 480 cap_call_handle_t chandle;480 ipc_call_t call; 481 481 size_t size; 482 if (!async_data_read_receive(&c handle, &size)) {483 async_answer_0( chandle, EINVAL);482 if (!async_data_read_receive(&call, &size)) { 483 async_answer_0(&call, EINVAL); 484 484 return EINVAL; 485 485 } … … 500 500 501 501 if (pos < count) { 502 async_data_read_finalize( chandle, desc[pos].name, str_size(desc[pos].name) + 1);502 async_data_read_finalize(&call, desc[pos].name, str_size(desc[pos].name) + 1); 503 503 free(desc); 504 504 *rbytes = 1; … … 515 515 516 516 if (pos < count) { 517 async_data_read_finalize( chandle, desc[pos].name, str_size(desc[pos].name) + 1);517 async_data_read_finalize(&call, desc[pos].name, str_size(desc[pos].name) + 1); 518 518 free(desc); 519 519 *rbytes = 1; … … 524 524 } 525 525 526 async_answer_0( chandle, ENOENT);526 async_answer_0(&call, ENOENT); 527 527 return ENOENT; 528 528 } … … 532 532 if (type == LOC_OBJECT_NAMESPACE) { 533 533 /* Namespace directory */ 534 cap_call_handle_t chandle;534 ipc_call_t call; 535 535 size_t size; 536 if (!async_data_read_receive(&c handle, &size)) {537 async_answer_0( chandle, EINVAL);536 if (!async_data_read_receive(&call, &size)) { 537 async_answer_0(&call, EINVAL); 538 538 return EINVAL; 539 539 } … … 543 543 544 544 if (pos < count) { 545 async_data_read_finalize( chandle, desc[pos].name, str_size(desc[pos].name) + 1);545 async_data_read_finalize(&call, desc[pos].name, str_size(desc[pos].name) + 1); 546 546 free(desc); 547 547 *rbytes = 1; … … 550 550 551 551 free(desc); 552 async_answer_0( chandle, ENOENT);552 async_answer_0(&call, ENOENT); 553 553 return ENOENT; 554 554 } … … 568 568 assert(dev->sess); 569 569 570 cap_call_handle_t chandle;571 if (!async_data_read_receive(&c handle, NULL)) {570 ipc_call_t call; 571 if (!async_data_read_receive(&call, NULL)) { 572 572 fibril_mutex_unlock(&services_mutex); 573 async_answer_0( chandle, EINVAL);573 async_answer_0(&call, EINVAL); 574 574 return EINVAL; 575 575 } … … 583 583 584 584 /* Forward the IPC_M_DATA_READ request to the driver */ 585 async_forward_fast( chandle, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);585 async_forward_fast(&call, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); 586 586 587 587 async_exchange_end(exch); … … 632 632 assert(dev->sess); 633 633 634 cap_call_handle_t chandle;635 if (!async_data_write_receive(&c handle, NULL)) {634 ipc_call_t call; 635 if (!async_data_write_receive(&call, NULL)) { 636 636 fibril_mutex_unlock(&services_mutex); 637 async_answer_0( chandle, EINVAL);637 async_answer_0(&call, EINVAL); 638 638 return EINVAL; 639 639 } … … 647 647 648 648 /* Forward the IPC_M_DATA_WRITE request to the driver */ 649 async_forward_fast( chandle, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);649 async_forward_fast(&call, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); 650 650 651 651 async_exchange_end(exch); -
uspace/srv/fs/mfs/mfs_ops.c
r76f566d r984a9ba 839 839 struct mfs_ino_info *ino_i; 840 840 size_t len, bytes = 0; 841 cap_call_handle_t chandle;841 ipc_call_t call; 842 842 843 843 mnode = fn->data; 844 844 ino_i = mnode->ino_i; 845 845 846 if (!async_data_read_receive(&c handle, &len)) {846 if (!async_data_read_receive(&call, &len)) { 847 847 rc = EINVAL; 848 848 goto out_error; … … 871 871 872 872 rc = mfs_node_put(fn); 873 async_answer_0( chandle, rc != EOK ? rc : ENOENT);873 async_answer_0(&call, rc != EOK ? rc : ENOENT); 874 874 return rc; 875 875 found: 876 async_data_read_finalize( chandle, d_info.d_name,876 async_data_read_finalize(&call, d_info.d_name, 877 877 str_size(d_info.d_name) + 1); 878 878 bytes = ((pos - spos) + 1); … … 883 883 /* Trying to read beyond the end of file */ 884 884 bytes = 0; 885 (void) async_data_read_finalize( chandle, NULL, 0);885 (void) async_data_read_finalize(&call, NULL, 0); 886 886 goto out_success; 887 887 } … … 905 905 } 906 906 memset(buf, 0, sizeof(sbi->block_size)); 907 async_data_read_finalize( chandle,907 async_data_read_finalize(&call, 908 908 buf + pos % sbi->block_size, bytes); 909 909 free(buf); … … 915 915 goto out_error; 916 916 917 async_data_read_finalize( chandle, b->data +917 async_data_read_finalize(&call, b->data + 918 918 pos % sbi->block_size, bytes); 919 919 … … 930 930 out_error: 931 931 tmp = mfs_node_put(fn); 932 async_answer_0( chandle, tmp != EOK ? tmp : rc);932 async_answer_0(&call, tmp != EOK ? tmp : rc); 933 933 return tmp != EOK ? tmp : rc; 934 934 } … … 948 948 return ENOENT; 949 949 950 cap_call_handle_t chandle;950 ipc_call_t call; 951 951 size_t len; 952 952 953 if (!async_data_write_receive(&c handle, &len)) {953 if (!async_data_write_receive(&call, &len)) { 954 954 r = EINVAL; 955 955 goto out_err; … … 994 994 memset(b->data, 0, sbi->block_size); 995 995 996 async_data_write_finalize( chandle, b->data + (pos % bs), bytes);996 async_data_write_finalize(&call, b->data + (pos % bs), bytes); 997 997 b->dirty = true; 998 998 … … 1014 1014 out_err: 1015 1015 mfs_node_put(fn); 1016 async_answer_0( chandle, r);1016 async_answer_0(&call, r); 1017 1017 return r; 1018 1018 } -
uspace/srv/fs/tmpfs/tmpfs_ops.c
r76f566d r984a9ba 55 55 56 56 /** All root nodes have index 0. */ 57 #define TMPFS_SOME_ROOT 0 57 #define TMPFS_SOME_ROOT 0 58 58 59 /** Global counter for assigning node indices. Shared by all instances. */ 59 60 fs_index_t tmpfs_next_index = 1; … … 308 309 if (!nodep) 309 310 return ENOMEM; 311 310 312 tmpfs_node_initialize(nodep); 311 313 nodep->bp = malloc(sizeof(fs_node_t)); … … 314 316 return ENOMEM; 315 317 } 318 316 319 fs_node_initialize(nodep->bp); 317 nodep->bp->data = nodep; /* link the FS and TMPFS nodes */320 nodep->bp->data = nodep; /* Link the FS and TMPFS nodes */ 318 321 319 322 rc = tmpfs_root_get(&rootfn, service_id); … … 323 326 else 324 327 nodep->index = tmpfs_next_index++; 328 325 329 nodep->service_id = service_id; 326 330 if (lflag & L_DIRECTORY) … … 480 484 * Receive the read request. 481 485 */ 482 cap_call_handle_t chandle;486 ipc_call_t call; 483 487 size_t size; 484 if (!async_data_read_receive(&c handle, &size)) {485 async_answer_0( chandle, EINVAL);488 if (!async_data_read_receive(&call, &size)) { 489 async_answer_0(&call, EINVAL); 486 490 return EINVAL; 487 491 } … … 490 494 if (nodep->type == TMPFS_FILE) { 491 495 bytes = min(nodep->size - pos, size); 492 (void) async_data_read_finalize( chandle, nodep->data + pos,496 (void) async_data_read_finalize(&call, nodep->data + pos, 493 497 bytes); 494 498 } else { … … 506 510 507 511 if (lnk == NULL) { 508 async_answer_0( chandle, ENOENT);512 async_answer_0(&call, ENOENT); 509 513 return ENOENT; 510 514 } … … 512 516 dentryp = list_get_instance(lnk, tmpfs_dentry_t, link); 513 517 514 (void) async_data_read_finalize( chandle, dentryp->name,518 (void) async_data_read_finalize(&call, dentryp->name, 515 519 str_size(dentryp->name) + 1); 516 520 bytes = 1; … … 543 547 * Receive the write request. 544 548 */ 545 cap_call_handle_t chandle;549 ipc_call_t call; 546 550 size_t size; 547 if (!async_data_write_receive(&c handle, &size)) {548 async_answer_0( chandle, EINVAL);551 if (!async_data_write_receive(&call, &size)) { 552 async_answer_0(&call, EINVAL); 549 553 return EINVAL; 550 554 } … … 555 559 if (pos + size <= nodep->size) { 556 560 /* The file size is not changing. */ 557 (void) async_data_write_finalize( chandle, nodep->data + pos,561 (void) async_data_write_finalize(&call, nodep->data + pos, 558 562 size); 559 563 goto out; … … 569 573 void *newdata = realloc(nodep->data, nodep->size + delta); 570 574 if (!newdata) { 571 async_answer_0( chandle, ENOMEM);575 async_answer_0(&call, ENOMEM); 572 576 size = 0; 573 577 goto out; … … 577 581 nodep->size += delta; 578 582 nodep->data = newdata; 579 (void) async_data_write_finalize( chandle, nodep->data + pos, size);583 (void) async_data_write_finalize(&call, nodep->data + pos, size); 580 584 581 585 out: -
uspace/srv/fs/udf/udf_file.c
r76f566d r984a9ba 568 568 * 569 569 * @param read_len Returned value. Length file or part file which we could read. 570 * @param c handle570 * @param call IPC call 571 571 * @param node UDF node 572 572 * @param pos Position in file since we have to read. … … 576 576 * 577 577 */ 578 errno_t udf_read_file(size_t *read_len, cap_call_handle_t chandle, udf_node_t *node,578 errno_t udf_read_file(size_t *read_len, ipc_call_t *call, udf_node_t *node, 579 579 aoff64_t pos, size_t len) 580 580 { … … 598 598 BLOCK_FLAGS_NONE); 599 599 if (rc != EOK) { 600 async_answer_0(c handle, rc);600 async_answer_0(call, rc); 601 601 return rc; 602 602 } … … 619 619 } 620 620 621 async_data_read_finalize(c handle, block->data + sector_pos, *read_len);621 async_data_read_finalize(call, block->data + sector_pos, *read_len); 622 622 return block_put(block); 623 623 } -
uspace/srv/fs/udf/udf_file.h
r76f566d r984a9ba 198 198 extern errno_t udf_read_allocation_sequence(udf_node_t *, uint8_t *, uint16_t, 199 199 uint32_t, uint32_t); 200 extern errno_t udf_read_file(size_t *, cap_call_handle_t, udf_node_t *, aoff64_t,200 extern errno_t udf_read_file(size_t *, ipc_call_t *, udf_node_t *, aoff64_t, 201 201 size_t); 202 202 extern errno_t udf_get_fid(udf_file_identifier_descriptor_t **, block_t **, -
uspace/srv/fs/udf/udf_ops.c
r76f566d r984a9ba 464 464 udf_node_t *node = UDF_NODE(rfn); 465 465 466 cap_call_handle_t chandle;466 ipc_call_t call; 467 467 size_t len = 0; 468 if (!async_data_read_receive(&c handle, &len)) {469 async_answer_0( chandle, EINVAL);468 if (!async_data_read_receive(&call, &len)) { 469 async_answer_0(&call, EINVAL); 470 470 udf_node_put(rfn); 471 471 return EINVAL; … … 475 475 if (pos >= node->data_size) { 476 476 *rbytes = 0; 477 async_data_read_finalize( chandle, NULL, 0);477 async_data_read_finalize(&call, NULL, 0); 478 478 udf_node_put(rfn); 479 479 return EOK; … … 482 482 size_t read_len = 0; 483 483 if (node->data == NULL) 484 rc = udf_read_file(&read_len, chandle, node, pos, len);484 rc = udf_read_file(&read_len, &call, node, pos, len); 485 485 else { 486 486 /* File in allocation descriptors area */ 487 487 read_len = (len < node->data_size) ? len : node->data_size; 488 async_data_read_finalize( chandle, node->data + pos, read_len);488 async_data_read_finalize(&call, node->data + pos, read_len); 489 489 rc = EOK; 490 490 } … … 505 505 fid->lenght_file_id, &node->instance->charset); 506 506 507 async_data_read_finalize( chandle, name, str_size(name) + 1);507 async_data_read_finalize(&call, name, str_size(name) + 1); 508 508 *rbytes = 1; 509 509 free(name); … … 517 517 *rbytes = 0; 518 518 udf_node_put(rfn); 519 async_answer_0( chandle, ENOENT);519 async_answer_0(&call, ENOENT); 520 520 return ENOENT; 521 521 }
Note:
See TracChangeset
for help on using the changeset viewer.