Changeset e47a032 in mainline for uspace/srv/bd/hr/util.c
- Timestamp:
- 2024-10-28T20:02:39Z (7 months ago)
- Children:
- 9fc1d36d
- Parents:
- 066fed9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/hr/util.c
r066fed9 re47a032 56 56 57 57 for (i = 0; i < vol->dev_no; i++) { 58 if (vol->extents[i].svc_id == 0) { 59 vol->extents[i].status = HR_EXT_MISSING; 60 continue; 61 } 58 62 rc = block_init(vol->extents[i].svc_id); 63 vol->extents[i].status = HR_EXT_ONLINE; 59 64 log_msg(LOG_DEFAULT, LVL_DEBUG, 60 "hr_init_devs(): initing (%" PRIun ")", vol->extents[i].svc_id); 65 "hr_init_devs(): initing (%" PRIun ")", 66 vol->extents[i].svc_id); 61 67 if (rc != EOK) { 62 68 log_msg(LOG_DEFAULT, LVL_ERROR, … … 77 83 78 84 for (i = 0; i < vol->dev_no; i++) 79 block_fini(vol->extents[i].svc_id); 85 if (vol->extents[i].status != HR_EXT_MISSING) 86 block_fini(vol->extents[i].svc_id); 80 87 } 81 88 … … 127 134 128 135 errno_t rc; 129 size_t i, bsize, last_bsize; 130 uint64_t nblocks, last_nblocks; 136 size_t i, bsize; 137 uint64_t nblocks; 138 size_t last_bsize = 0; 139 uint64_t last_nblocks = 0; 131 140 uint64_t total_blocks = 0; 132 141 133 142 for (i = 0; i < vol->dev_no; i++) { 143 if (vol->extents[i].status == HR_EXT_MISSING) 144 continue; 134 145 rc = block_get_nblocks(vol->extents[i].svc_id, &nblocks); 135 146 if (rc != EOK) 136 147 goto error; 137 if ( i!= 0 && nblocks != last_nblocks) {148 if (last_nblocks != 0 && nblocks != last_nblocks) { 138 149 log_msg(LOG_DEFAULT, LVL_ERROR, 139 150 "number of blocks differs"); … … 146 157 147 158 for (i = 0; i < vol->dev_no; i++) { 159 if (vol->extents[i].status == HR_EXT_MISSING) 160 continue; 148 161 rc = block_get_bsize(vol->extents[i].svc_id, &bsize); 149 162 if (rc != EOK) 150 163 goto error; 151 if ( i!= 0 && bsize != last_bsize) {164 if (last_bsize != 0 && bsize != last_bsize) { 152 165 log_msg(LOG_DEFAULT, LVL_ERROR, "block sizes differ"); 153 166 rc = EINVAL; … … 177 190 } 178 191 192 void hr_update_ext_status(hr_volume_t *vol, uint64_t extent, hr_ext_status_t s) 193 { 194 log_msg(LOG_DEFAULT, LVL_WARN, 195 "vol %s, changing extent: %lu, to status: %s", 196 vol->devname, extent, hr_get_ext_status_msg(s)); 197 vol->extents[extent].status = s; 198 } 199 179 200 /** @} 180 201 */
Note:
See TracChangeset
for help on using the changeset viewer.