Changeset 61042de in mainline for uspace/lib/fs/libfs.c
- Timestamp:
- 2017-03-18T20:58:08Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 61600e7
- Parents:
- b7f69f2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fs/libfs.c
rb7f69f2 r61042de 79 79 static void libfs_open_node(libfs_ops_t *, fs_handle_t, ipc_callid_t, 80 80 ipc_call_t *); 81 static void libfs_statfs(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *); 81 static void libfs_statfs(libfs_ops_t *, fs_handle_t, ipc_callid_t, 82 ipc_call_t *); 82 83 83 84 static void vfs_out_mounted(ipc_callid_t rid, ipc_call_t *req) … … 157 158 rc = vfs_out_ops->write(service_id, index, pos, &wbytes, &nsize); 158 159 159 if (rc == EOK) 160 async_answer_3(rid, EOK, wbytes, LOWER32(nsize), UPPER32(nsize)); 161 else 160 if (rc == EOK) { 161 async_answer_3(rid, EOK, wbytes, LOWER32(nsize), 162 UPPER32(nsize)); 163 } else 162 164 async_answer_0(rid, rc); 163 165 } … … 198 200 bool destroy = (libfs_ops->lnkcnt_get(node) == 0); 199 201 libfs_ops->node_put(node); 200 if (destroy) {202 if (destroy) 201 203 rc = vfs_out_ops->destroy(service_id, index); 202 }203 204 } 204 205 async_answer_0(rid, rc); … … 239 240 fs_node_t *node = NULL; 240 241 rc = libfs_ops->node_get(&node, service_id, index); 241 if (rc != EOK) {242 if (rc != EOK) 242 243 async_answer_0(rid, rc); 243 } 244 if (node == NULL) { 244 if (node == NULL) 245 245 async_answer_0(rid, EINVAL); 246 }247 246 248 247 uint64_t size = libfs_ops->size_get(node); … … 260 259 fs_node_t *node = NULL; 261 260 rc = libfs_ops->node_get(&node, service_id, index); 262 if (rc != EOK) {261 if (rc != EOK) 263 262 async_answer_0(rid, rc); 264 } 265 if (node == NULL) { 263 if (node == NULL) 266 264 async_answer_0(rid, EINVAL); 267 }268 265 269 266 bool children = false; … … 271 268 libfs_ops->node_put(node); 272 269 273 if (rc != EOK) {270 if (rc != EOK) 274 271 async_answer_0(rid, rc); 275 }276 272 async_answer_0(rid, children ? ENOTEMPTY : EOK); 277 273 } … … 445 441 } 446 442 447 static int plb_get_component(char *dest, unsigned *sz, unsigned *ppos, unsigned last) 443 static int plb_get_component(char *dest, unsigned *sz, unsigned *ppos, 444 unsigned last) 448 445 { 449 446 unsigned pos = *ppos; … … 456 453 457 454 char c = plb_get_char(pos); 458 if (c == '/') {455 if (c == '/') 459 456 pos++; 460 }461 457 462 458 for (int i = 0; i <= NAME_MAX; i++) { … … 480 476 ipc_callid_t wcall; 481 477 482 if (!async_data_write_receive(&wcall, &size)) {478 if (!async_data_write_receive(&wcall, &size)) 483 479 return ENOENT; 484 }485 480 if (size > NAME_MAX + 1) { 486 481 async_answer_0(wcall, ERANGE); … … 492 487 /** Link a file at a path. 493 488 */ 494 void libfs_link(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid, ipc_call_t *req) 489 void libfs_link(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid, 490 ipc_call_t *req) 495 491 { 496 492 service_id_t parent_sid = IPC_GET_ARG1(*req); … … 658 654 int64_t size = ops->size_get(cur); 659 655 int32_t lsize = LOWER32(size); 660 if (lsize != size) {656 if (lsize != size) 661 657 lsize = -1; 662 }663 658 664 659 async_answer_5(rid, fs_handle, service_id, … … 680 675 681 676 if (!cur) { 682 rc = ops->create(&cur, service_id, lflag & (L_FILE|L_DIRECTORY)); 677 rc = ops->create(&cur, service_id, 678 lflag & (L_FILE | L_DIRECTORY)); 683 679 if (rc != EOK) { 684 680 async_answer_0(rid, rc); … … 703 699 out1: 704 700 if (!cur) { 705 async_answer_5(rid, fs_handle, service_id, 706 ops->index_get(par),last_next, -1, true);701 async_answer_5(rid, fs_handle, service_id, ops->index_get(par), 702 last_next, -1, true); 707 703 goto out; 708 704 } … … 718 714 int64_t size = ops->size_get(cur); 719 715 int32_t lsize = LOWER32(size); 720 if (lsize != size) {716 if (lsize != size) 721 717 lsize = -1; 722 }723 718 724 719 async_answer_5(rid, fs_handle, service_id, ops->index_get(cur), last, … … 726 721 727 722 out: 728 if (par) {723 if (par) 729 724 (void) ops->node_put(par); 730 } 731 732 if (cur) { 725 726 if (cur) 733 727 (void) ops->node_put(cur); 734 } 735 736 if (tmp) { 728 729 if (tmp) 737 730 (void) ops->node_put(tmp); 738 }739 731 } 740 732 … … 857 849 async_answer_4(rid, rc, LOWER32(size), UPPER32(size), 858 850 ops->lnkcnt_get(fn), 859 (ops->is_file(fn) ? L_FILE : 0) | (ops->is_directory(fn) ? L_DIRECTORY : 0)); 851 (ops->is_file(fn) ? L_FILE : 0) | 852 (ops->is_directory(fn) ? L_DIRECTORY : 0)); 860 853 861 854 (void) ops->node_put(fn);
Note:
See TracChangeset
for help on using the changeset viewer.