Index: uspace/srv/bd/hr/raid1.c
===================================================================
--- uspace/srv/bd/hr/raid1.c	(revision 996d31acc0c6d09af6ff2425f7df18593ca1dc24)
+++ uspace/srv/bd/hr/raid1.c	(revision 6aafb480111c5cc96fb85e470247a656a20f0613)
@@ -185,10 +185,10 @@
 	size_t rebuild_no = hr_count_extents(vol, HR_EXT_REBUILD);
 
+	fibril_rwlock_read_unlock(&vol->states_lock);
+	fibril_rwlock_read_unlock(&vol->extents_lock);
+
 	fibril_mutex_lock(&vol->hotspare_lock);
 	size_t hs_no = vol->hotspare_no;
 	fibril_mutex_unlock(&vol->hotspare_lock);
-
-	fibril_rwlock_read_unlock(&vol->states_lock);
-	fibril_rwlock_read_unlock(&vol->extents_lock);
 
 	if (healthy == 0) {
@@ -206,13 +206,10 @@
 		}
 
-		if (old_state != HR_VOL_REBUILD) {
-			if (hs_no > 0 || invalid_no > 0 || rebuild_no > 0) {
-				fid_t fib = fibril_create(hr_raid1_rebuild,
-				    vol);
-				if (fib == 0)
-					return;
-				fibril_start(fib);
-				fibril_detach(fib);
-			}
+		if (hs_no > 0 || invalid_no > 0 || rebuild_no > 0) {
+			fid_t fib = fibril_create(hr_raid1_rebuild, vol);
+			if (fib == 0)
+				return;
+			fibril_start(fib);
+			fibril_detach(fib);
 		}
 	} else {
@@ -541,4 +538,6 @@
 	hr_mark_vol_state_dirty(vol);
 
+	hr_update_vol_state(vol, HR_VOL_DEGRADED);
+
 	fibril_rwlock_write_unlock(&vol->states_lock);
 end:
