Changes in uspace/srv/vfs/vfs_node.c [1b20da0:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_node.c
r1b20da0 ra35b458 108 108 { 109 109 bool free_node = false; 110 111 fibril_mutex_lock(&nodes_mutex); 112 110 111 fibril_mutex_lock(&nodes_mutex); 112 113 113 node->refcnt--; 114 114 if (node->refcnt == 0) { … … 117 117 * Remove it from the VFS node hash table. 118 118 */ 119 119 120 120 hash_table_remove_item(&nodes, &node->nh_link); 121 121 free_node = true; 122 122 } 123 124 fibril_mutex_unlock(&nodes_mutex); 125 123 124 fibril_mutex_unlock(&nodes_mutex); 125 126 126 if (free_node) { 127 127 /* … … 129 129 * are no more hard links. 130 130 */ 131 131 132 132 async_exch_t *exch = vfs_exchange_grab(node->fs_handle); 133 133 async_msg_2(exch, VFS_OUT_DESTROY, (sysarg_t) node->service_id, … … 239 239 (node->service_id == rd->service_id)) 240 240 rd->refcnt += node->refcnt; 241 241 242 242 return true; 243 243 } … … 268 268 { 269 269 async_exch_t *exch = vfs_exchange_grab(node->fs_handle); 270 270 271 271 ipc_call_t answer; 272 272 aid_t req = async_send_2(exch, VFS_OUT_OPEN_NODE, 273 273 (sysarg_t) node->service_id, (sysarg_t) node->index, &answer); 274 274 275 275 vfs_exchange_release(exch); 276 276 277 277 errno_t rc; 278 278 async_wait_for(req, &rc); 279 279 280 280 return rc; 281 281 } … … 311 311 .index = node->index 312 312 }; 313 313 314 314 return tri; 315 315 }
Note:
See TracChangeset
for help on using the changeset viewer.