Changeset dec4150 in mainline
- Timestamp:
 - 2025-01-12T21:53:55Z (10 months ago)
 - Children:
 - d773bea9
 - Parents:
 - 401b9e42
 - git-author:
 - Miroslav Cimerman <mc@…> (2025-01-12 20:11:54)
 - git-committer:
 - Miroslav Cimerman <mc@…> (2025-01-12 21:53:55)
 - File:
 - 
      
- 1 edited
 
- 
          
  uspace/srv/bd/hr/raid1.c (modified) (2 diffs)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
      
uspace/srv/bd/hr/raid1.c
r401b9e42 rdec4150 162 162 hr_update_hotspare_status(vol, hs_idx, HR_EXT_HOTSPARE); 163 163 164 /* 165 * If the volume is degraded, start rebuild right away. 166 */ 167 if (vol->status == HR_VOL_DEGRADED) { 168 HR_DEBUG("hr_raid1_add_hotspare(): volume in DEGRADED state, " 169 "spawning new rebuild fibril\n"); 170 fid_t fib = fibril_create(hr_raid1_rebuild, vol); 171 if (fib == 0) { 172 rc = ENOMEM; 173 goto error; 174 } 175 fibril_start(fib); 176 fibril_detach(fib); 177 } 178 164 atomic_store(&vol->state_changed, true); 179 165 error: 180 166 fibril_mutex_unlock(&vol->hotspare_lock); 167 168 hr_raid1_update_vol_status(vol); 181 169 182 170 return rc; … … 305 293 } 306 294 } else if (healthy < vol->extent_no) { 295 if (old_state != HR_VOL_REBUILD && 296 old_state != HR_VOL_DEGRADED) { 297 fibril_rwlock_write_lock(&vol->states_lock); 298 hr_update_vol_status(vol, HR_VOL_DEGRADED); 299 fibril_rwlock_write_unlock(&vol->states_lock); 300 } 301 307 302 if (old_state != HR_VOL_REBUILD) { 308 if (old_state != HR_VOL_DEGRADED) {309 fibril_rwlock_write_lock(&vol->states_lock);310 hr_update_vol_status(vol, HR_VOL_DEGRADED);311 fibril_rwlock_write_unlock(&vol->states_lock);312 }313 314 303 if (vol->hotspare_no > 0) { 315 304 fid_t fib = fibril_create(hr_raid1_rebuild,  
  Note:
 See   TracChangeset
 for help on using the changeset viewer.
  