Changes in uspace/srv/vfs/vfs_ops.c [6f2c1ff:feeac0d] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_ops.c
r6f2c1ff rfeeac0d 266 266 } 267 267 268 void vfs_mount _srv(ipc_callid_t rid, ipc_call_t *request)268 void vfs_mount(ipc_callid_t rid, ipc_call_t *request) 269 269 { 270 270 service_id_t service_id; … … 405 405 } 406 406 407 void vfs_unmount _srv(ipc_callid_t rid, ipc_call_t *request)407 void vfs_unmount(ipc_callid_t rid, ipc_call_t *request) 408 408 { 409 409 int rc; … … 637 637 else 638 638 fibril_rwlock_read_unlock(&namespace_rwlock); 639 640 if (!node) {641 async_answer_0(rid, ENOMEM);642 return;643 }644 639 645 640 /* Truncate the file if requested and if necessary. */ … … 1417 1412 } 1418 1413 1419 void vfs_statfs(ipc_callid_t rid, ipc_call_t *request)1420 {1421 char *path;1422 int rc = async_data_write_accept((void **) &path, true, 0, 0, 0, NULL);1423 if (rc != EOK) {1424 async_answer_0(rid, rc);1425 return;1426 }1427 1428 ipc_callid_t callid;1429 if (!async_data_read_receive(&callid, NULL)) {1430 free(path);1431 async_answer_0(callid, EINVAL);1432 async_answer_0(rid, EINVAL);1433 return;1434 }1435 1436 vfs_lookup_res_t lr;1437 fibril_rwlock_read_lock(&namespace_rwlock);1438 rc = vfs_lookup_internal(path, L_NONE, &lr, NULL);1439 free(path);1440 if (rc != EOK) {1441 fibril_rwlock_read_unlock(&namespace_rwlock);1442 async_answer_0(callid, rc);1443 async_answer_0(rid, rc);1444 return;1445 }1446 vfs_node_t *node = vfs_node_get(&lr);1447 if (!node) {1448 fibril_rwlock_read_unlock(&namespace_rwlock);1449 async_answer_0(callid, ENOMEM);1450 async_answer_0(rid, ENOMEM);1451 return;1452 }1453 1454 fibril_rwlock_read_unlock(&namespace_rwlock);1455 1456 async_exch_t *exch = vfs_exchange_grab(node->fs_handle);1457 1458 aid_t msg;1459 msg = async_send_3(exch, VFS_OUT_STATFS, node->service_id,1460 node->index, false, NULL);1461 async_forward_fast(callid, exch, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);1462 1463 vfs_exchange_release(exch);1464 1465 sysarg_t rv;1466 async_wait_for(msg, &rv);1467 1468 async_answer_0(rid, rv);1469 1470 vfs_node_put(node);1471 }1472 1473 1414 /** 1474 1415 * @}
Note:
See TracChangeset
for help on using the changeset viewer.