Changeset 6a44ee4 in mainline for uspace/srv/vfs/vfs_lookup.c
- Timestamp:
- 2011-07-20T15:26:21Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- efcebe1
- Parents:
- 25bef0ff (diff), a701812 (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_lookup.c
r25bef0ff r6a44ee4 50 50 51 51 FIBRIL_MUTEX_INITIALIZE(plb_mutex); 52 LIST_INITIALIZE(plb_ head); /**< PLB entry ring buffer. */52 LIST_INITIALIZE(plb_entries); /**< PLB entry ring buffer. */ 53 53 uint8_t *plb = NULL; 54 54 … … 102 102 size_t last; /* the last free index */ 103 103 104 if (list_empty(&plb_ head)) {104 if (list_empty(&plb_entries)) { 105 105 first = 0; 106 106 last = PLB_SIZE - 1; 107 107 } else { 108 plb_entry_t *oldest = list_get_instance( plb_head.next,109 plb_entry_t, plb_link);110 plb_entry_t *newest = list_get_instance( plb_head.prev,111 plb_entry_t, plb_link);108 plb_entry_t *oldest = list_get_instance( 109 list_first(&plb_entries), plb_entry_t, plb_link); 110 plb_entry_t *newest = list_get_instance( 111 list_last(&plb_entries), plb_entry_t, plb_link); 112 112 113 113 first = (newest->index + newest->len) % PLB_SIZE; … … 145 145 * buffer. 146 146 */ 147 list_append(&entry.plb_link, &plb_ head);147 list_append(&entry.plb_link, &plb_entries); 148 148 149 149 fibril_mutex_unlock(&plb_mutex); … … 159 159 160 160 ipc_call_t answer; 161 int phone = vfs_grab_phone(root->fs_handle);162 aid_t req = async_send_5( phone, VFS_OUT_LOOKUP, (sysarg_t) first,161 async_exch_t *exch = vfs_exchange_grab(root->fs_handle); 162 aid_t req = async_send_5(exch, VFS_OUT_LOOKUP, (sysarg_t) first, 163 163 (sysarg_t) (first + len - 1) % PLB_SIZE, 164 164 (sysarg_t) root->devmap_handle, (sysarg_t) lflag, (sysarg_t) index, … … 167 167 sysarg_t rc; 168 168 async_wait_for(req, &rc); 169 vfs_ release_phone(root->fs_handle, phone);169 vfs_exchange_release(exch); 170 170 171 171 fibril_mutex_lock(&plb_mutex); … … 208 208 int vfs_open_node_internal(vfs_lookup_res_t *result) 209 209 { 210 int phone = vfs_grab_phone(result->triplet.fs_handle);210 async_exch_t *exch = vfs_exchange_grab(result->triplet.fs_handle); 211 211 212 212 ipc_call_t answer; 213 aid_t req = async_send_2( phone, VFS_OUT_OPEN_NODE,213 aid_t req = async_send_2(exch, VFS_OUT_OPEN_NODE, 214 214 (sysarg_t) result->triplet.devmap_handle, 215 215 (sysarg_t) result->triplet.index, &answer); … … 217 217 sysarg_t rc; 218 218 async_wait_for(req, &rc); 219 vfs_ release_phone(result->triplet.fs_handle, phone);219 vfs_exchange_release(exch); 220 220 221 221 if (rc == EOK) {
Note:
See TracChangeset
for help on using the changeset viewer.