Blame SOURCES/avoid_register.patch

41b6f0
diff --git a/lib/activate/activate.c.avoid_register b/lib/activate/activate.c
41b6f0
index 1d71ea8..86882f7 100644
41b6f0
--- a/lib/activate/activate.c.avoid_register
41b6f0
+++ b/lib/activate/activate.c
41b6f0
@@ -964,11 +964,13 @@ activate_subset(struct lib_context *lc, struct raid_set *rs, enum dm_what what)
41b6f0
 {
41b6f0
 	int ret = 0;
41b6f0
 	char *table = NULL;
41b6f0
+	struct dmraid_format *fmt = get_format(rs);
41b6f0
 
41b6f0
 	if (T_GROUP(rs))
41b6f0
 		return 1;
41b6f0
 
41b6f0
-	if (what == DM_REGISTER)
41b6f0
+	if (what == DM_REGISTER &&
41b6f0
+	    fmt->metadata_handler)
41b6f0
 		return register_devices(lc, rs);
41b6f0
 
41b6f0
 	/* Call type handler */
41b6f0
@@ -1053,8 +1055,10 @@ deactivate_superset(struct lib_context *lc, struct raid_set *rs,
41b6f0
 		    enum dm_what what)
41b6f0
 {
41b6f0
 	int ret = 1, status;
41b6f0
+	struct dmraid_format *fmt = get_format(rs);
41b6f0
 
41b6f0
-	if (what == DM_REGISTER)
41b6f0
+	if (what == DM_REGISTER &&
41b6f0
+	    fmt->metadata_handler)
41b6f0
 		return unregister_devices(lc, rs);
41b6f0
 
41b6f0
 	status = dm_status(lc, rs);