diff options
author | Ed Maste <emaste@FreeBSD.org> | 2023-02-27 19:13:09 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2023-03-01 18:44:01 +0000 |
commit | 6c7bc93da699054bb8ead58fdc226e084d929515 (patch) | |
tree | 9f2688eb5cff6d384bebdd5a20876606d1b0887a | |
parent | c3dd45c47be9b3ea47edc84c6bc6187ab74d966b (diff) | |
download | src-6c7bc93da699054bb8ead58fdc226e084d929515.tar.gz src-6c7bc93da699054bb8ead58fdc226e084d929515.zip |
g_part_ebr: always create "compat" aliases
The "canonical" EBR partition names like `ada0s4+00002081` are not
particularly meaningful. The "compat" aliases share the same namespace
as the parent MBR, resulting in user-friendly names like `ada0s6`.
These names are consistent with the way Linux names EBR partitions.
We previously provided a sysctl kern.features.geom_part_ebr_compat
(enabled by default) to control the "compat" names. Remove the sysctl
and always create the aliases.
Relnotes: yes
Reviewed by: cem, imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38812
-rw-r--r-- | sys/geom/part/g_part_ebr.c | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/sys/geom/part/g_part_ebr.c b/sys/geom/part/g_part_ebr.c index f7aaf1c45cb6..1eb8e30d8adf 100644 --- a/sys/geom/part/g_part_ebr.c +++ b/sys/geom/part/g_part_ebr.c @@ -59,11 +59,6 @@ SYSCTL_DECL(_kern_geom_part); static SYSCTL_NODE(_kern_geom_part, OID_AUTO, ebr, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "GEOM_PART_EBR Extended Boot Record"); -static bool compat_aliases = true; -SYSCTL_BOOL(_kern_geom_part_ebr, OID_AUTO, compat_aliases, - CTLFLAG_RDTUN, &compat_aliases, 0, - "Set non-zero to enable EBR compatibility alias names (e.g., ada0p5)"); - #define EBRNAMFMT "+%08u" #define EBRSIZE 512 @@ -284,12 +279,10 @@ g_part_ebr_add(struct g_part_table *basetable, struct g_part_entry *baseentry, ebr_set_chs(basetable, baseentry->gpe_end, &entry->ent.dp_ecyl, &entry->ent.dp_ehd, &entry->ent.dp_esect); - if (compat_aliases) { - idx = 5; - LIST_FOREACH(iter, &basetable->gpt_entry, gpe_entry) - idx++; - entry->ebr_compat_idx = idx; - } + idx = 5; + LIST_FOREACH(iter, &basetable->gpt_entry, gpe_entry) + idx++; + entry->ebr_compat_idx = idx; return (ebr_parse_type(gpp->gpp_type, &entry->ent.dp_typ)); } @@ -301,11 +294,9 @@ g_part_ebr_add_alias(struct g_part_table *table, struct g_provider *pp, g_provider_add_alias(pp, "%s%s" EBRNAMFMT, pfx, g_part_separator, baseentry->gpe_index); - if (compat_aliases) { - entry = (struct g_part_ebr_entry *)baseentry; - g_provider_add_alias(pp, "%.*s%u", (int)strlen(pfx) - 1, pfx, - entry->ebr_compat_idx); - } + entry = (struct g_part_ebr_entry *)baseentry; + g_provider_add_alias(pp, "%.*s%u", (int)strlen(pfx) - 1, pfx, + entry->ebr_compat_idx); } static struct g_provider * @@ -317,11 +308,9 @@ g_part_ebr_new_provider(struct g_part_table *table, struct g_geom *gp, pp = g_new_providerf(gp, "%s%s" EBRNAMFMT, pfx, g_part_separator, baseentry->gpe_index); - if (compat_aliases) { - entry = (struct g_part_ebr_entry *)baseentry; - g_provider_add_alias(pp, "%.*s%u", (int)strlen(pfx) - 1, pfx, - entry->ebr_compat_idx); - } + entry = (struct g_part_ebr_entry *)baseentry; + g_provider_add_alias(pp, "%.*s%u", (int)strlen(pfx) - 1, pfx, + entry->ebr_compat_idx); return (pp); } @@ -573,8 +562,7 @@ g_part_ebr_read(struct g_part_table *basetable, struct g_consumer *cp) entry = (struct g_part_ebr_entry *)baseentry; entry->ent = ent[0]; memcpy(entry->ebr, buf, sizeof(entry->ebr)); - if (compat_aliases) - entry->ebr_compat_idx = idx++; + entry->ebr_compat_idx = idx++; g_free(buf); if (ent[1].dp_typ == 0) |