Changes in uspace/srv/fs/mfs/mfs_ops.c [1d6dd2a:4f30222] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/mfs/mfs_ops.c
r1d6dd2a r4f30222 36 36 #include <adt/hash_table.h> 37 37 #include <adt/hash.h> 38 #include <str.h>39 38 #include "mfs.h" 40 39 … … 42 41 static bool check_magic_number(uint16_t magic, bool *native, 43 42 mfs_version_t *version, bool *longfilenames); 44 static errno_t mfs_node_core_get(fs_node_t **rfn, struct mfs_instance *inst,43 static int mfs_node_core_get(fs_node_t **rfn, struct mfs_instance *inst, 45 44 fs_index_t index); 46 static errno_t mfs_node_put(fs_node_t *fsnode);47 static errno_t mfs_node_open(fs_node_t *fsnode);45 static int mfs_node_put(fs_node_t *fsnode); 46 static int mfs_node_open(fs_node_t *fsnode); 48 47 static fs_index_t mfs_index_get(fs_node_t *fsnode); 49 48 static unsigned mfs_lnkcnt_get(fs_node_t *fsnode); 50 49 static bool mfs_is_directory(fs_node_t *fsnode); 51 50 static bool mfs_is_file(fs_node_t *fsnode); 52 static errno_t mfs_has_children(bool *has_children, fs_node_t *fsnode);53 static errno_t mfs_root_get(fs_node_t **rfn, service_id_t service_id);51 static int mfs_has_children(bool *has_children, fs_node_t *fsnode); 52 static int mfs_root_get(fs_node_t **rfn, service_id_t service_id); 54 53 static service_id_t mfs_service_get(fs_node_t *fsnode); 55 54 static aoff64_t mfs_size_get(fs_node_t *node); 56 static errno_t mfs_match(fs_node_t **rfn, fs_node_t *pfn, const char *component);57 static errno_t mfs_create_node(fs_node_t **rfn, service_id_t service_id, int flags);58 static errno_t mfs_link(fs_node_t *pfn, fs_node_t *cfn, const char *name);59 static errno_t mfs_unlink(fs_node_t *, fs_node_t *, const char *name);60 static errno_t mfs_destroy_node(fs_node_t *fn);61 static errno_t mfs_node_get(fs_node_t **rfn, service_id_t service_id,55 static int mfs_match(fs_node_t **rfn, fs_node_t *pfn, const char *component); 56 static int mfs_create_node(fs_node_t **rfn, service_id_t service_id, int flags); 57 static int mfs_link(fs_node_t *pfn, fs_node_t *cfn, const char *name); 58 static int mfs_unlink(fs_node_t *, fs_node_t *, const char *name); 59 static int mfs_destroy_node(fs_node_t *fn); 60 static int mfs_node_get(fs_node_t **rfn, service_id_t service_id, 62 61 fs_index_t index); 63 static errno_t mfs_instance_get(service_id_t service_id,62 static int mfs_instance_get(service_id_t service_id, 64 63 struct mfs_instance **instance); 65 static errno_t mfs_check_sanity(struct mfs_sb_info *sbi);64 static int mfs_check_sanity(struct mfs_sb_info *sbi); 66 65 static bool is_power_of_two(uint32_t n); 67 static errno_t mfs_size_block(service_id_t service_id, uint32_t *size);68 static errno_t mfs_total_block_count(service_id_t service_id, uint64_t *count);69 static errno_t mfs_free_block_count(service_id_t service_id, uint64_t *count);66 static int mfs_size_block(service_id_t service_id, uint32_t *size); 67 static int mfs_total_block_count(service_id_t service_id, uint64_t *count); 68 static int mfs_free_block_count(service_id_t service_id, uint64_t *count); 70 69 71 70 static hash_table_t open_nodes; … … 132 131 }; 133 132 134 errno_t133 int 135 134 mfs_global_init(void) 136 135 { … … 143 142 /** Read the superblock. 144 143 */ 145 static errno_t mfs_read_sb(service_id_t service_id, struct mfs_sb_info **rsbi)144 static int mfs_read_sb(service_id_t service_id, struct mfs_sb_info **rsbi) 146 145 { 147 146 struct mfs_superblock *sb = NULL; … … 152 151 mfs_version_t version; 153 152 uint16_t magic; 154 errno_t rc;153 int rc; 155 154 156 155 /* Allocate space for generic MFS superblock */ … … 278 277 279 278 280 static errno_t mfs_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info)279 static int mfs_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info) 281 280 { 282 281 struct mfs_sb_info *sbi = NULL; 283 errno_t rc;282 int rc; 284 283 285 284 /* Initialize libblock */ … … 295 294 } 296 295 297 static errno_t296 static int 298 297 mfs_mounted(service_id_t service_id, const char *opts, fs_index_t *index, 299 298 aoff64_t *size) … … 302 301 struct mfs_sb_info *sbi = NULL; 303 302 struct mfs_instance *instance = NULL; 304 errno_t rc;303 int rc; 305 304 306 305 /* Check for option enabling write through. */ … … 366 365 } 367 366 368 static errno_t367 static int 369 368 mfs_unmounted(service_id_t service_id) 370 369 { … … 373 372 mfsdebug("%s()\n", __FUNCTION__); 374 373 375 errno_t r = mfs_instance_get(service_id, &inst);374 int r = mfs_instance_get(service_id, &inst); 376 375 if (r != EOK) 377 376 return r; … … 397 396 } 398 397 399 static errno_t398 static int 400 399 mfs_create_node(fs_node_t **rfn, service_id_t service_id, int flags) 401 400 { 402 errno_t r;401 int r; 403 402 struct mfs_instance *inst; 404 403 struct mfs_node *mnode; … … 484 483 } 485 484 486 static errno_t485 static int 487 486 mfs_match(fs_node_t **rfn, fs_node_t *pfn, const char *component) 488 487 { … … 490 489 struct mfs_ino_info *ino_i = mnode->ino_i; 491 490 struct mfs_dentry_info d_info; 492 errno_t r;491 int r; 493 492 494 493 if (!S_ISDIR(ino_i->i_mode)) … … 531 530 } 532 531 533 static errno_t532 static int 534 533 mfs_node_get(fs_node_t **rfn, service_id_t service_id, 535 534 fs_index_t index) 536 535 { 537 errno_t rc;536 int rc; 538 537 struct mfs_instance *instance; 539 538 … … 545 544 } 546 545 547 static errno_t546 static int 548 547 mfs_node_put(fs_node_t *fsnode) 549 548 { 550 errno_t rc = EOK;549 int rc = EOK; 551 550 struct mfs_node *mnode = fsnode->data; 552 551 … … 569 568 } 570 569 571 static errno_t570 static int 572 571 mfs_node_open(fs_node_t *fsnode) 573 572 { … … 602 601 } 603 602 604 static errno_t603 static int 605 604 mfs_node_core_get(fs_node_t **rfn, struct mfs_instance *inst, 606 605 fs_index_t index) … … 608 607 fs_node_t *node = NULL; 609 608 struct mfs_node *mnode = NULL; 610 errno_t rc;609 int rc; 611 610 612 611 fibril_mutex_lock(&open_nodes_lock); … … 689 688 } 690 689 691 static errno_t690 static int 692 691 mfs_root_get(fs_node_t **rfn, service_id_t service_id) 693 692 { 694 errno_t rc = mfs_node_get(rfn, service_id, MFS_ROOT_INO);693 int rc = mfs_node_get(rfn, service_id, MFS_ROOT_INO); 695 694 return rc; 696 695 } 697 696 698 static errno_t697 static int 699 698 mfs_link(fs_node_t *pfn, fs_node_t *cfn, const char *name) 700 699 { … … 707 706 return ENAMETOOLONG; 708 707 709 errno_t r = mfs_insert_dentry(parent, name, child->ino_i->index);708 int r = mfs_insert_dentry(parent, name, child->ino_i->index); 710 709 if (r != EOK) 711 710 return r; … … 737 736 exit: 738 737 if (destroy_dentry) { 739 errno_t r2 = mfs_remove_dentry(parent, name);738 int r2 = mfs_remove_dentry(parent, name); 740 739 if (r2 != EOK) 741 740 r = r2; … … 747 746 } 748 747 749 static errno_t748 static int 750 749 mfs_unlink(fs_node_t *pfn, fs_node_t *cfn, const char *name) 751 750 { … … 753 752 struct mfs_node *child = cfn->data; 754 753 bool has_children; 755 errno_t r;754 int r; 756 755 757 756 if (!parent) … … 788 787 } 789 788 790 static errno_t789 static int 791 790 mfs_has_children(bool *has_children, fs_node_t *fsnode) 792 791 { 793 792 struct mfs_node *mnode = fsnode->data; 794 793 struct mfs_sb_info *sbi = mnode->instance->sbi; 795 errno_t r;794 int r; 796 795 797 796 *has_children = false; … … 820 819 } 821 820 822 static errno_t821 static int 823 822 mfs_read(service_id_t service_id, fs_index_t index, aoff64_t pos, 824 823 size_t *rbytes) 825 824 { 826 errno_t rc;825 int rc; 827 826 fs_node_t *fn = NULL; 828 827 … … 927 926 out_error: 928 927 ; 929 errno_t tmp = mfs_node_put(fn);928 int tmp = mfs_node_put(fn); 930 929 async_answer_0(callid, tmp != EOK ? tmp : rc); 931 930 return tmp != EOK ? tmp : rc; 932 931 } 933 932 934 static errno_t933 static int 935 934 mfs_write(service_id_t service_id, fs_index_t index, aoff64_t pos, 936 935 size_t *wbytes, aoff64_t *nsize) 937 936 { 938 937 fs_node_t *fn; 939 errno_t r;938 int r; 940 939 int flags = BLOCK_FLAGS_NONE; 941 940 … … 1016 1015 } 1017 1016 1018 static errno_t1017 static int 1019 1018 mfs_destroy(service_id_t service_id, fs_index_t index) 1020 1019 { 1021 1020 fs_node_t *fn = NULL; 1022 errno_t r;1021 int r; 1023 1022 1024 1023 r = mfs_node_get(&fn, service_id, index); … … 1032 1031 } 1033 1032 1034 static errno_t1033 static int 1035 1034 mfs_destroy_node(fs_node_t *fn) 1036 1035 { 1037 1036 struct mfs_node *mnode = fn->data; 1038 1037 bool has_children; 1039 errno_t r;1038 int r; 1040 1039 1041 1040 mfsdebug("mfs_destroy_node %d\n", mnode->ino_i->index); … … 1060 1059 } 1061 1060 1062 static errno_t1061 static int 1063 1062 mfs_truncate(service_id_t service_id, fs_index_t index, aoff64_t size) 1064 1063 { 1065 1064 fs_node_t *fn; 1066 errno_t r;1065 int r; 1067 1066 1068 1067 r = mfs_node_get(&fn, service_id, index); … … 1084 1083 } 1085 1084 1086 static errno_t1085 static int 1087 1086 mfs_instance_get(service_id_t service_id, struct mfs_instance **instance) 1088 1087 { 1089 1088 void *data; 1090 errno_t rc;1089 int rc; 1091 1090 1092 1091 rc = fs_instance_get(service_id, &data); … … 1136 1135 * @return EOK on success, ENOTSUP otherwise. 1137 1136 */ 1138 static errno_t1137 static int 1139 1138 mfs_check_sanity(struct mfs_sb_info *sbi) 1140 1139 { … … 1153 1152 } 1154 1153 1155 static errno_t1154 static int 1156 1155 mfs_close(service_id_t service_id, fs_index_t index) 1157 1156 { … … 1159 1158 } 1160 1159 1161 static errno_t1160 static int 1162 1161 mfs_sync(service_id_t service_id, fs_index_t index) 1163 1162 { 1164 1163 fs_node_t *fn = NULL; 1165 errno_t rc = mfs_node_get(&fn, service_id, index);1164 int rc = mfs_node_get(&fn, service_id, index); 1166 1165 if (rc != EOK) 1167 1166 return rc; … … 1190 1189 } 1191 1190 1192 static errno_t1191 static int 1193 1192 mfs_size_block(service_id_t service_id, uint32_t *size) 1194 1193 { 1195 1194 struct mfs_instance *inst; 1196 errno_t rc;1195 int rc; 1197 1196 1198 1197 rc = mfs_instance_get(service_id, &inst); … … 1208 1207 } 1209 1208 1210 static errno_t1209 static int 1211 1210 mfs_total_block_count(service_id_t service_id, uint64_t *count) 1212 1211 { 1213 1212 struct mfs_instance *inst; 1214 errno_t rc;1213 int rc; 1215 1214 1216 1215 rc = mfs_instance_get(service_id, &inst); … … 1226 1225 } 1227 1226 1228 static errno_t1227 static int 1229 1228 mfs_free_block_count(service_id_t service_id, uint64_t *count) 1230 1229 { … … 1232 1231 1233 1232 struct mfs_instance *inst; 1234 errno_t rc = mfs_instance_get(service_id, &inst);1233 int rc = mfs_instance_get(service_id, &inst); 1235 1234 if (rc != EOK) 1236 1235 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.