Changeset bd5f3b7 in mainline for uspace/srv/vfs/vfs_node.c
- Timestamp:
- 2011-08-21T13:07:35Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 00aece0, f1a9e87
- Parents:
- 86a34d3e (diff), a6480d5 (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_node.c
r86a34d3e rbd5f3b7 116 116 unsigned long key[] = { 117 117 [KEY_FS_HANDLE] = node->fs_handle, 118 [KEY_DEV_HANDLE] = node-> devmap_handle,118 [KEY_DEV_HANDLE] = node->service_id, 119 119 [KEY_INDEX] = node->index 120 120 }; … … 138 138 async_exch_t *exch = vfs_exchange_grab(node->fs_handle); 139 139 sysarg_t rc = async_req_2_0(exch, VFS_OUT_DESTROY, 140 (sysarg_t) node-> devmap_handle, (sysarg_t)node->index);140 (sysarg_t) node->service_id, (sysarg_t)node->index); 141 141 142 142 assert(rc == EOK); … … 160 160 unsigned long key[] = { 161 161 [KEY_FS_HANDLE] = node->fs_handle, 162 [KEY_DEV_HANDLE] = node-> devmap_handle,162 [KEY_DEV_HANDLE] = node->service_id, 163 163 [KEY_INDEX] = node->index 164 164 }; … … 184 184 unsigned long key[] = { 185 185 [KEY_FS_HANDLE] = result->triplet.fs_handle, 186 [KEY_DEV_HANDLE] = result->triplet. devmap_handle,186 [KEY_DEV_HANDLE] = result->triplet.service_id, 187 187 [KEY_INDEX] = result->triplet.index 188 188 }; … … 200 200 memset(node, 0, sizeof(vfs_node_t)); 201 201 node->fs_handle = result->triplet.fs_handle; 202 node-> devmap_handle = result->triplet.devmap_handle;202 node->service_id = result->triplet.service_id; 203 203 node->index = result->triplet.index; 204 204 node->size = result->size; … … 252 252 vfs_node_t *node = hash_table_get_instance(item, vfs_node_t, nh_link); 253 253 return (node->fs_handle == (fs_handle_t) key[KEY_FS_HANDLE]) && 254 (node-> devmap_handle== key[KEY_DEV_HANDLE]) &&254 (node->service_id == key[KEY_DEV_HANDLE]) && 255 255 (node->index == key[KEY_INDEX]); 256 256 } … … 264 264 unsigned refcnt; 265 265 fs_handle_t fs_handle; 266 devmap_handle_t devmap_handle;266 service_id_t service_id; 267 267 }; 268 268 … … 273 273 274 274 if ((node->fs_handle == rd->fs_handle) && 275 (node-> devmap_handle == rd->devmap_handle))275 (node->service_id == rd->service_id)) 276 276 rd->refcnt += node->refcnt; 277 277 } 278 278 279 279 unsigned 280 vfs_nodes_refcount_sum_get(fs_handle_t fs_handle, devmap_handle_t devmap_handle)280 vfs_nodes_refcount_sum_get(fs_handle_t fs_handle, service_id_t service_id) 281 281 { 282 282 struct refcnt_data rd = { 283 283 .refcnt = 0, 284 284 .fs_handle = fs_handle, 285 . devmap_handle = devmap_handle285 .service_id = service_id 286 286 }; 287 287 … … 291 291 292 292 return rd.refcnt; 293 } 294 295 296 /** Perform a remote node open operation. 297 * 298 * @return EOK on success or an error code from errno.h. 299 * 300 */ 301 int vfs_open_node_remote(vfs_node_t *node) 302 { 303 async_exch_t *exch = vfs_exchange_grab(node->fs_handle); 304 305 ipc_call_t answer; 306 aid_t req = async_send_2(exch, VFS_OUT_OPEN_NODE, 307 (sysarg_t) node->service_id, (sysarg_t) node->index, &answer); 308 309 vfs_exchange_release(exch); 310 311 sysarg_t rc; 312 async_wait_for(req, &rc); 313 314 return rc; 293 315 } 294 316
Note:
See TracChangeset
for help on using the changeset viewer.