Changes in uspace/srv/vfs/vfs_lookup.c [b33ec43:79ae36dd] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_lookup.c
rb33ec43 r79ae36dd 50 50 51 51 FIBRIL_MUTEX_INITIALIZE(plb_mutex); 52 LIST_INITIALIZE(plb_ entries); /**< PLB entry ring buffer. */52 LIST_INITIALIZE(plb_head); /**< 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_ entries)) {104 if (list_empty(&plb_head)) { 105 105 first = 0; 106 106 last = PLB_SIZE - 1; 107 107 } else { 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);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); 112 112 113 113 first = (newest->index + newest->len) % PLB_SIZE; … … 145 145 * buffer. 146 146 */ 147 list_append(&entry.plb_link, &plb_ entries);147 list_append(&entry.plb_link, &plb_head); 148 148 149 149 fibril_mutex_unlock(&plb_mutex); … … 201 201 } 202 202 203 /** Perform a node open operation. 204 * 205 * @return EOK on success or an error code from errno.h. 206 * 207 */ 208 int vfs_open_node_internal(vfs_lookup_res_t *result) 209 { 210 async_exch_t *exch = vfs_exchange_grab(result->triplet.fs_handle); 211 212 ipc_call_t answer; 213 aid_t req = async_send_2(exch, VFS_OUT_OPEN_NODE, 214 (sysarg_t) result->triplet.devmap_handle, 215 (sysarg_t) result->triplet.index, &answer); 216 217 sysarg_t rc; 218 async_wait_for(req, &rc); 219 vfs_exchange_release(exch); 220 221 if (rc == EOK) { 222 result->size = 223 MERGE_LOUP32(IPC_GET_ARG1(answer), IPC_GET_ARG2(answer)); 224 result->lnkcnt = (unsigned int) IPC_GET_ARG3(answer); 225 if (IPC_GET_ARG4(answer) & L_FILE) 226 result->type = VFS_NODE_FILE; 227 else if (IPC_GET_ARG4(answer) & L_DIRECTORY) 228 result->type = VFS_NODE_DIRECTORY; 229 else 230 result->type = VFS_NODE_UNKNOWN; 231 } 232 233 return rc; 234 } 235 203 236 /** 204 237 * @}
Note:
See TracChangeset
for help on using the changeset viewer.