Index: uspace/srv/bd/hr/hr.c
===================================================================
--- uspace/srv/bd/hr/hr.c	(revision dcdb99082e1e6f56b22a07bc1682c1cc06e9fa94)
+++ uspace/srv/bd/hr/hr.c	(revision 996d31acc0c6d09af6ff2425f7df18593ca1dc24)
@@ -407,7 +407,13 @@
 	}
 
-	if (vol->hr_ops.add_hotspare == NULL) {
-		HR_NOTE("hotspare not supported on RAID level = %d, "
-		    "metadata type = %s\n", vol->level,
+	if (vol->level == HR_LVL_0) {
+		HR_NOTE("hotspare not supported on RAID level = %s\n",
+		    hr_get_level_str(vol->level));
+		async_answer_0(icall, ENOTSUP);
+		return;
+	}
+
+	if (!(vol->meta_ops->get_flags() & HR_METADATA_HOTSPARE_SUPPORT)) {
+		HR_NOTE("hotspare not supported on metadata type = %s\n",
 		    hr_get_metadata_type_str(vol->meta_ops->get_type()));
 		async_answer_0(icall, ENOTSUP);
@@ -415,5 +421,7 @@
 	}
 
-	rc = vol->hr_ops.add_hotspare(vol, hotspare);
+	rc = hr_util_add_hotspare(vol, hotspare);
+
+	vol->hr_ops.vol_state_eval(vol);
 
 	async_answer_0(icall, rc);
Index: uspace/srv/bd/hr/raid1.c
===================================================================
--- uspace/srv/bd/hr/raid1.c	(revision dcdb99082e1e6f56b22a07bc1682c1cc06e9fa94)
+++ uspace/srv/bd/hr/raid1.c	(revision 996d31acc0c6d09af6ff2425f7df18593ca1dc24)
@@ -133,15 +133,4 @@
 }
 
-errno_t hr_raid1_add_hotspare(hr_volume_t *vol, service_id_t hotspare)
-{
-	HR_DEBUG("%s()", __func__);
-
-	errno_t rc = hr_util_add_hotspare(vol, hotspare);
-
-	hr_raid1_vol_state_eval(vol);
-
-	return rc;
-}
-
 void hr_raid1_vol_state_eval(hr_volume_t *vol)
 {
Index: uspace/srv/bd/hr/raid5.c
===================================================================
--- uspace/srv/bd/hr/raid5.c	(revision dcdb99082e1e6f56b22a07bc1682c1cc06e9fa94)
+++ uspace/srv/bd/hr/raid5.c	(revision 996d31acc0c6d09af6ff2425f7df18593ca1dc24)
@@ -155,15 +155,4 @@
 }
 
-errno_t hr_raid5_add_hotspare(hr_volume_t *vol, service_id_t hotspare)
-{
-	HR_DEBUG("%s()", __func__);
-
-	errno_t rc = hr_util_add_hotspare(vol, hotspare);
-
-	hr_raid5_vol_state_eval(vol);
-
-	return rc;
-}
-
 void hr_raid5_ext_state_cb(hr_volume_t *vol, size_t extent, errno_t rc)
 {
Index: uspace/srv/bd/hr/util.c
===================================================================
--- uspace/srv/bd/hr/util.c	(revision dcdb99082e1e6f56b22a07bc1682c1cc06e9fa94)
+++ uspace/srv/bd/hr/util.c	(revision 996d31acc0c6d09af6ff2425f7df18593ca1dc24)
@@ -119,6 +119,4 @@
 	vol->meta_ops = hr_get_meta_type_ops(metadata_type);
 
-	uint8_t meta_flags = vol->meta_ops->get_flags();
-
 	switch (level) {
 	case HR_LVL_0:
@@ -133,6 +131,4 @@
 		vol->hr_ops.vol_state_eval = hr_raid1_vol_state_eval;
 		vol->hr_ops.ext_state_cb = hr_raid1_ext_state_cb;
-		if (meta_flags & HR_METADATA_HOTSPARE_SUPPORT)
-			vol->hr_ops.add_hotspare = hr_raid1_add_hotspare;
 		break;
 	case HR_LVL_4:
@@ -142,6 +138,4 @@
 		vol->hr_ops.vol_state_eval = hr_raid5_vol_state_eval;
 		vol->hr_ops.ext_state_cb = hr_raid5_ext_state_cb;
-		if (meta_flags & HR_METADATA_HOTSPARE_SUPPORT)
-			vol->hr_ops.add_hotspare = hr_raid5_add_hotspare;
 		break;
 	default:
Index: uspace/srv/bd/hr/var.h
===================================================================
--- uspace/srv/bd/hr/var.h	(revision dcdb99082e1e6f56b22a07bc1682c1cc06e9fa94)
+++ uspace/srv/bd/hr/var.h	(revision 996d31acc0c6d09af6ff2425f7df18593ca1dc24)
@@ -66,5 +66,4 @@
 	errno_t (*create)(hr_volume_t *);
 	errno_t (*init)(hr_volume_t *);
-	errno_t (*add_hotspare)(hr_volume_t *, service_id_t);
 	void (*vol_state_eval)(hr_volume_t *);
 	void (*ext_state_cb)(hr_volume_t *, size_t, errno_t);
@@ -138,7 +137,4 @@
 extern errno_t hr_raid5_init(hr_volume_t *);
 
-extern errno_t hr_raid1_add_hotspare(hr_volume_t *, service_id_t);
-extern errno_t hr_raid5_add_hotspare(hr_volume_t *, service_id_t);
-
 extern void hr_raid0_vol_state_eval(hr_volume_t *);
 extern void hr_raid1_vol_state_eval(hr_volume_t *);
