Changeset cb569e6 in mainline for uspace/srv/vfs/vfs_ops.c
- Timestamp:
- 2010-11-18T21:58:27Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4e5c7ba
- Parents:
- 69e0d6d (diff), 45f04f8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_ops.c
r69e0d6d rcb569e6 55 55 56 56 /* Forward declarations of static functions. */ 57 static int vfs_truncate_internal(fs_handle_t, dev _handle_t, fs_index_t, aoff64_t);57 static int vfs_truncate_internal(fs_handle_t, devmap_handle_t, fs_index_t, aoff64_t); 58 58 59 59 /** … … 65 65 vfs_pair_t rootfs = { 66 66 .fs_handle = 0, 67 .dev _handle = 067 .devmap_handle = 0 68 68 }; 69 69 70 static void vfs_mount_internal(ipc_callid_t rid, dev _handle_t dev_handle,70 static void vfs_mount_internal(ipc_callid_t rid, devmap_handle_t devmap_handle, 71 71 fs_handle_t fs_handle, char *mp, char *opts) 72 72 { … … 125 125 phone = vfs_grab_phone(fs_handle); 126 126 msg = async_send_1(phone, VFS_OUT_MOUNTED, 127 (ipcarg_t) dev _handle, &answer);127 (ipcarg_t) devmap_handle, &answer); 128 128 /* send the mount options */ 129 129 rc = async_data_write_start(phone, (void *)opts, … … 150 150 151 151 mr_res.triplet.fs_handle = fs_handle; 152 mr_res.triplet.dev _handle = dev_handle;152 mr_res.triplet.devmap_handle = devmap_handle; 153 153 mr_res.triplet.index = rindex; 154 154 mr_res.size = rsize; … … 157 157 158 158 rootfs.fs_handle = fs_handle; 159 rootfs.dev _handle = dev_handle;159 rootfs.devmap_handle = devmap_handle; 160 160 161 161 /* Add reference to the mounted root. */ … … 187 187 phone = vfs_grab_phone(mp_res.triplet.fs_handle); 188 188 msg = async_send_4(phone, VFS_OUT_MOUNT, 189 (ipcarg_t) mp_res.triplet.dev _handle,189 (ipcarg_t) mp_res.triplet.devmap_handle, 190 190 (ipcarg_t) mp_res.triplet.index, 191 191 (ipcarg_t) fs_handle, 192 (ipcarg_t) dev _handle, &answer);192 (ipcarg_t) devmap_handle, &answer); 193 193 194 194 /* send connection */ … … 229 229 230 230 mr_res.triplet.fs_handle = fs_handle; 231 mr_res.triplet.dev _handle = dev_handle;231 mr_res.triplet.devmap_handle = devmap_handle; 232 232 mr_res.triplet.index = rindex; 233 233 mr_res.size = rsize; … … 255 255 * in the request. 256 256 */ 257 dev _handle_t dev_handle = (dev_handle_t) IPC_GET_ARG1(*request);257 devmap_handle_t devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request); 258 258 259 259 /* … … 343 343 344 344 /* Do the mount */ 345 vfs_mount_internal(rid, dev _handle, fs_handle, mp, opts);345 vfs_mount_internal(rid, devmap_handle, fs_handle, mp, opts); 346 346 free(mp); 347 347 free(fs_name); … … 402 402 */ 403 403 if (vfs_nodes_refcount_sum_get(mr_node->fs_handle, 404 mr_node->dev _handle) != 2) {404 mr_node->devmap_handle) != 2) { 405 405 fibril_rwlock_write_unlock(&namespace_rwlock); 406 406 vfs_node_put(mr_node); … … 422 422 phone = vfs_grab_phone(mr_node->fs_handle); 423 423 rc = async_req_1_0(phone, VFS_OUT_UNMOUNTED, 424 mr_node->dev _handle);424 mr_node->devmap_handle); 425 425 vfs_release_phone(mr_node->fs_handle, phone); 426 426 if (rc != EOK) { … … 431 431 } 432 432 rootfs.fs_handle = 0; 433 rootfs.dev _handle = 0;433 rootfs.devmap_handle = 0; 434 434 } else { 435 435 … … 458 458 459 459 phone = vfs_grab_phone(mp_node->fs_handle); 460 rc = async_req_2_0(phone, VFS_OUT_UNMOUNT, mp_node->dev _handle,460 rc = async_req_2_0(phone, VFS_OUT_UNMOUNT, mp_node->devmap_handle, 461 461 mp_node->index); 462 462 vfs_release_phone(mp_node->fs_handle, phone); … … 569 569 if (node->size) { 570 570 rc = vfs_truncate_internal(node->fs_handle, 571 node->dev _handle, node->index, 0);571 node->devmap_handle, node->index, 0); 572 572 if (rc) { 573 573 fibril_rwlock_write_unlock(&node->contents_rwlock); … … 626 626 627 627 lr.triplet.fs_handle = IPC_GET_ARG1(*request); 628 lr.triplet.dev _handle = IPC_GET_ARG2(*request);628 lr.triplet.devmap_handle = IPC_GET_ARG2(*request); 629 629 lr.triplet.index = IPC_GET_ARG3(*request); 630 630 int oflag = IPC_GET_ARG4(*request); … … 647 647 if (node->size) { 648 648 rc = vfs_truncate_internal(node->fs_handle, 649 node->dev _handle, node->index, 0);649 node->devmap_handle, node->index, 0); 650 650 if (rc) { 651 651 fibril_rwlock_write_unlock(&node->contents_rwlock); … … 709 709 aid_t msg; 710 710 ipc_call_t answer; 711 msg = async_send_2(fs_phone, VFS_OUT_SYNC, file->node->dev _handle,711 msg = async_send_2(fs_phone, VFS_OUT_SYNC, file->node->devmap_handle, 712 712 file->node->index, &answer); 713 713 … … 740 740 aid_t msg; 741 741 ipc_call_t answer; 742 msg = async_send_2(fs_phone, VFS_OUT_CLOSE, file->node->dev _handle,742 msg = async_send_2(fs_phone, VFS_OUT_CLOSE, file->node->devmap_handle, 743 743 file->node->index, &answer); 744 744 … … 838 838 839 839 rc = async_data_read_forward_3_1(fs_phone, VFS_OUT_READ, 840 file->node->dev _handle, file->node->index, file->pos,840 file->node->devmap_handle, file->node->index, file->pos, 841 841 &answer); 842 842 } else { 843 843 rc = async_data_write_forward_3_1(fs_phone, VFS_OUT_WRITE, 844 file->node->dev _handle, file->node->index, file->pos,844 file->node->devmap_handle, file->node->index, file->pos, 845 845 &answer); 846 846 } … … 961 961 } 962 962 963 int vfs_truncate_internal(fs_handle_t fs_handle, dev _handle_t dev_handle,963 int vfs_truncate_internal(fs_handle_t fs_handle, devmap_handle_t devmap_handle, 964 964 fs_index_t index, aoff64_t size) 965 965 { … … 968 968 969 969 fs_phone = vfs_grab_phone(fs_handle); 970 rc = async_req_4_0(fs_phone, VFS_OUT_TRUNCATE, (ipcarg_t) dev _handle,970 rc = async_req_4_0(fs_phone, VFS_OUT_TRUNCATE, (ipcarg_t) devmap_handle, 971 971 (ipcarg_t) index, LOWER32(size), UPPER32(size)); 972 972 vfs_release_phone(fs_handle, fs_phone); … … 990 990 fibril_rwlock_write_lock(&file->node->contents_rwlock); 991 991 rc = vfs_truncate_internal(file->node->fs_handle, 992 file->node->dev _handle, file->node->index, size);992 file->node->devmap_handle, file->node->index, size); 993 993 if (rc == EOK) 994 994 file->node->size = size; … … 1022 1022 1023 1023 aid_t msg; 1024 msg = async_send_3(fs_phone, VFS_OUT_STAT, file->node->dev _handle,1024 msg = async_send_3(fs_phone, VFS_OUT_STAT, file->node->devmap_handle, 1025 1025 file->node->index, true, NULL); 1026 1026 ipc_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); … … 1071 1071 int fs_phone = vfs_grab_phone(node->fs_handle); 1072 1072 aid_t msg; 1073 msg = async_send_3(fs_phone, VFS_OUT_STAT, node->dev _handle,1073 msg = async_send_3(fs_phone, VFS_OUT_STAT, node->devmap_handle, 1074 1074 node->index, false, NULL); 1075 1075 ipc_forward_fast(callid, fs_phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); … … 1245 1245 /* Check whether linking to the same file system instance. */ 1246 1246 if ((old_node->fs_handle != new_par_lr.triplet.fs_handle) || 1247 (old_node->dev _handle != new_par_lr.triplet.dev_handle)) {1247 (old_node->devmap_handle != new_par_lr.triplet.devmap_handle)) { 1248 1248 fibril_rwlock_write_unlock(&namespace_rwlock); 1249 1249 ipc_answer_0(rid, EXDEV); /* different file systems */
Note:
See TracChangeset
for help on using the changeset viewer.