Index: uspace/srv/bd/hr/util.c
===================================================================
--- uspace/srv/bd/hr/util.c	(revision 3a68baab70c3a34b7d36d95e7573dc8db1dcad3b)
+++ uspace/srv/bd/hr/util.c	(revision 36661772fee5a252907eec78afc8a94774e88675)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2024 Miroslav Cimerman
+ * Copyright (c) 2025 Miroslav Cimerman
  * All rights reserved.
  *
@@ -93,5 +93,5 @@
 
 	for (i = 0; i < vol->extent_no; i++) {
-		if (vol->extents[i].status != HR_EXT_MISSING) {
+		if (vol->extents[i].svc_id != 0) {
 			HR_DEBUG("hr_fini_devs(): block_fini() on (%lu)\n",
 			    vol->extents[i].svc_id);
@@ -213,4 +213,9 @@
 void hr_update_ext_status(hr_volume_t *vol, size_t extent, hr_ext_status_t s)
 {
+	if (vol->level != HR_LVL_0)
+		assert(fibril_rwlock_is_locked(&vol->extents_lock));
+
+	assert(fibril_rwlock_is_write_locked(&vol->states_lock));
+
 	assert(extent < vol->extent_no);
 
@@ -224,4 +229,6 @@
 void hr_update_hotspare_status(hr_volume_t *vol, size_t hs, hr_ext_status_t s)
 {
+	assert(fibril_mutex_is_locked(&vol->hotspare_lock));
+
 	assert(hs < vol->hotspare_no);
 
@@ -235,4 +242,6 @@
 void hr_update_vol_status(hr_volume_t *vol, hr_vol_status_t s)
 {
+	assert(fibril_rwlock_is_write_locked(&vol->states_lock));
+
 	HR_WARN("\"%s\": changing volume state: %s -> %s\n", vol->devname,
 	    hr_get_vol_status_msg(vol->status), hr_get_vol_status_msg(s));
@@ -256,5 +265,7 @@
 			continue;
 		rc = block_sync_cache(vol->extents[i].svc_id, 0, 0);
-		if (rc != EOK && rc != ENOTSUP) {
+		if (rc == ENOMEM || rc == ENOTSUP)
+			continue;
+		if (rc != EOK) {
 			if (rc == ENOENT)
 				hr_update_ext_status(vol, i, HR_EXT_MISSING);
@@ -268,4 +279,8 @@
 size_t hr_count_extents(hr_volume_t *vol, hr_ext_status_t status)
 {
+	if (vol->level != HR_LVL_0)
+		assert(fibril_rwlock_is_locked(&vol->extents_lock));
+	assert(fibril_rwlock_is_locked(&vol->states_lock));
+
 	size_t count = 0;
 	for (size_t i = 0; i < vol->extent_no; i++)
@@ -339,4 +354,7 @@
 void hr_range_lock_release(hr_range_lock_t *rl)
 {
+	if (rl == NULL)
+		return;
+
 	HR_RL_LIST_LOCK(rl->vol);
 
