Changes in uspace/srv/fs/fat/fat_ops.c [b69e4c0:40cdbec] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/fat/fat_ops.c
rb69e4c0 r40cdbec 1025 1025 } 1026 1026 1027 static int fat_update_fat32_fsinfo(service_id_t service_id)1028 {1029 fat_bs_t *bs;1030 fat32_fsinfo_t *info;1031 block_t *b;1032 int rc;1033 1034 bs = block_bb_get(service_id);1035 assert(FAT_IS_FAT32(bs));1036 1037 rc = block_get(&b, service_id, uint16_t_le2host(bs->fat32.fsinfo_sec),1038 BLOCK_FLAGS_NONE);1039 if (rc != EOK)1040 return rc;1041 1042 info = (fat32_fsinfo_t *) b->data;1043 1044 if (bcmp(info->sig1, FAT32_FSINFO_SIG1, sizeof(info->sig1)) ||1045 bcmp(info->sig2, FAT32_FSINFO_SIG2, sizeof(info->sig2)) ||1046 bcmp(info->sig3, FAT32_FSINFO_SIG3, sizeof(info->sig3))) {1047 (void) block_put(b);1048 return EINVAL;1049 }1050 1051 /* For now, invalidate the counter. */1052 info->free_clusters = host2uint16_t_le(-1);1053 1054 b->dirty = true;1055 return block_put(b);1056 }1057 1058 1027 static int fat_unmounted(service_id_t service_id) 1059 1028 { 1060 1029 fs_node_t *fn; 1061 1030 fat_node_t *nodep; 1062 fat_bs_t *bs; 1063 int rc; 1064 1065 bs = block_bb_get(service_id); 1031 int rc; 1066 1032 1067 1033 rc = fat_root_get(&fn, service_id); … … 1077 1043 (void) fat_node_put(fn); 1078 1044 return EBUSY; 1079 }1080 1081 if (FAT_IS_FAT32(bs)) {1082 /*1083 * Attempt to update the FAT32 FS info.1084 */1085 (void) fat_update_fat32_fsinfo(service_id);1086 1045 } 1087 1046
Note:
See TracChangeset
for help on using the changeset viewer.