MFC r256724:
Make geom_label(4) resize-aware. This fixes a situation when "gpart resize" would resize a partition, but label providers - e.g. /dev/gptid/XXX - would stay the same size. MFC r256766: Fix build with gcc by spelling unused format string as "unused" instead of NULL. Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
39d7d288c5
commit
a82d470c95
@ -382,7 +382,7 @@ g_slice_config(struct g_geom *gp, u_int idx, int how, off_t offset, off_t length
|
||||
printf("GEOM: Reconfigure %s, start %jd length %jd end %jd\n",
|
||||
pp->name, (intmax_t)offset, (intmax_t)length,
|
||||
(intmax_t)(offset + length - 1));
|
||||
pp->mediasize = gsl->length;
|
||||
g_resize_provider(pp, gsl->length);
|
||||
return (0);
|
||||
}
|
||||
sb = sbuf_new_auto();
|
||||
|
@ -124,6 +124,17 @@ g_label_spoiled(struct g_consumer *cp)
|
||||
g_slice_spoiled(cp);
|
||||
}
|
||||
|
||||
static void
|
||||
g_label_resize(struct g_consumer *cp)
|
||||
{
|
||||
|
||||
G_LABEL_DEBUG(1, "Label %s resized.",
|
||||
LIST_FIRST(&cp->geom->provider)->name);
|
||||
|
||||
g_slice_config(cp->geom, 0, G_SLICE_CONFIG_FORCE, (off_t)0,
|
||||
cp->provider->mediasize, cp->provider->sectorsize, "notused");
|
||||
}
|
||||
|
||||
static int
|
||||
g_label_is_name_ok(const char *label)
|
||||
{
|
||||
@ -208,6 +219,7 @@ g_label_create(struct gctl_req *req, struct g_class *mp, struct g_provider *pp,
|
||||
}
|
||||
gp->orphan = g_label_orphan;
|
||||
gp->spoiled = g_label_spoiled;
|
||||
gp->resize = g_label_resize;
|
||||
g_access(cp, -1, 0, 0);
|
||||
g_slice_config(gp, 0, G_SLICE_CONFIG_SET, (off_t)0, mediasize,
|
||||
pp->sectorsize, "%s", name);
|
||||
|
Loading…
x
Reference in New Issue
Block a user