Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102644964
D25739.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
16 KB
Referenced Files
None
Subscribers
None
D25739.diff
View Options
Index: head/sys/geom/cache/g_cache.c
===================================================================
--- head/sys/geom/cache/g_cache.c
+++ head/sys/geom/cache/g_cache.c
@@ -757,19 +757,9 @@
/* This field is not important here. */
md.md_provsize = 0;
- name = gctl_get_asciiparam(req, "arg1");
- if (name == NULL) {
- gctl_error(req, "No 'arg1' argument");
+ pp = gctl_get_provider(req, "arg1");
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_CACHE_DEBUG(1, "Provider %s is invalid.", name);
- gctl_error(req, "Provider %s is invalid.", name);
- return;
- }
gp = g_cache_create(mp, pp, &md, G_CACHE_TYPE_MANUAL);
if (gp == NULL) {
gctl_error(req, "Can't create %s.", md.md_name);
Index: head/sys/geom/concat/g_concat.c
===================================================================
--- head/sys/geom/concat/g_concat.c
+++ head/sys/geom/concat/g_concat.c
@@ -840,19 +840,9 @@
/* Check all providers are valid */
for (no = 1; no < *nargs; no++) {
snprintf(param, sizeof(param), "arg%u", no);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", no);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_CONCAT_DEBUG(1, "Disk %s is invalid.", name);
- gctl_error(req, "Disk %s is invalid.", name);
- return;
- }
}
gp = g_concat_create(mp, &md, G_CONCAT_TYPE_MANUAL);
@@ -866,15 +856,13 @@
sbuf_printf(sb, "Can't attach disk(s) to %s:", gp->name);
for (attached = 0, no = 1; no < *nargs; no++) {
snprintf(param, sizeof(param), "arg%u", no);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%d' argument.", no);
- return;
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL) {
+ name = gctl_get_asciiparam(req, param);
+ MPASS(name != NULL);
+ sbuf_printf(sb, " %s", name);
+ continue;
}
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- KASSERT(pp != NULL, ("Provider %s disappear?!", name));
if (g_concat_add_disk(sc, pp, no - 1) != 0) {
G_CONCAT_DEBUG(1, "Disk %u (%s) not attached to %s.",
no, pp->name, gp->name);
Index: head/sys/geom/eli/g_eli_ctl.c
===================================================================
--- head/sys/geom/eli/g_eli_ctl.c
+++ head/sys/geom/eli/g_eli_ctl.c
@@ -58,7 +58,6 @@
{
struct g_eli_metadata md;
struct g_provider *pp;
- const char *name;
u_char *key, mkey[G_ELI_DATAIVKEYLEN];
int *nargs, *detach, *readonly, *dryrunp;
int keysize, error, nkey, dryrun, dummy;
@@ -115,22 +114,13 @@
return;
}
- name = gctl_get_asciiparam(req, "arg0");
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", 0);
+ pp = gctl_get_provider(req, "arg0");
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- gctl_error(req, "Provider %s is invalid.", name);
- return;
- }
error = g_eli_read_metadata(mp, pp, &md);
if (error != 0) {
gctl_error(req, "Cannot read metadata from %s (error=%d).",
- name, error);
+ pp->name, error);
return;
}
if (md.md_keys == 0x00) {
@@ -368,18 +358,9 @@
/* Not important here. */
bzero(md.md_hash, sizeof(md.md_hash));
- name = gctl_get_asciiparam(req, "arg0");
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", 0);
+ pp = gctl_get_provider(req, "arg0");
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- gctl_error(req, "Provider %s is invalid.", name);
- return;
- }
sectorsize = gctl_get_paraml(req, "sectorsize", sizeof(*sectorsize));
if (sectorsize == NULL) {
Index: head/sys/geom/label/g_label.c
===================================================================
--- head/sys/geom/label/g_label.c
+++ head/sys/geom/label/g_label.c
@@ -437,19 +437,9 @@
/*
* arg1 is the name of provider.
*/
- name = gctl_get_asciiparam(req, "arg1");
- if (name == NULL) {
- gctl_error(req, "No 'arg%d' argument", 1);
+ pp = gctl_get_provider(req, "arg1");
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_LABEL_DEBUG(1, "Provider %s is invalid.", name);
- gctl_error(req, "Provider %s is invalid.", name);
- return;
- }
/*
* arg0 is the label.
*/
Index: head/sys/geom/mirror/g_mirror_ctl.c
===================================================================
--- head/sys/geom/mirror/g_mirror_ctl.c
+++ head/sys/geom/mirror/g_mirror_ctl.c
@@ -441,34 +441,25 @@
cp = g_new_consumer(gp);
for (no = 1; no < *nargs; no++) {
snprintf(param, sizeof(param), "arg%u", no);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", no);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL) {
err:
g_destroy_consumer(cp);
g_destroy_geom(gp);
g_topology_unlock();
return;
}
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_MIRROR_DEBUG(1, "Disk %s is invalid.", name);
- gctl_error(req, "Disk %s is invalid.", name);
- goto err;
- }
g_attach(cp, pp);
if (g_access(cp, 1, 0, 0) != 0) {
- G_MIRROR_DEBUG(1, "Can't open disk %s.", name);
- gctl_error(req, "Can't open disk %s.", name);
+ G_MIRROR_DEBUG(1, "Can't open disk %s.", pp->name);
+ gctl_error(req, "Can't open disk %s.", pp->name);
err2:
g_detach(cp);
goto err;
}
if (pp->mediasize == 0 || pp->sectorsize == 0) {
- G_MIRROR_DEBUG(1, "Disk %s has no media.", name);
- gctl_error(req, "Disk %s has no media.", name);
+ G_MIRROR_DEBUG(1, "Disk %s has no media.", pp->name);
+ gctl_error(req, "Disk %s has no media.", pp->name);
g_access(cp, -1, 0, 0);
goto err2;
}
@@ -500,12 +491,10 @@
sbuf_printf(sb, "Can't attach disk(s) to %s:", gp->name);
for (attached = 0, no = 1; no < *nargs; no++) {
snprintf(param, sizeof(param), "arg%u", no);
- name = gctl_get_asciiparam(req, param);
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
+ pp = gctl_get_provider(req, param);
if (pp == NULL) {
- G_MIRROR_DEBUG(1, "Provider %s disappear?!", name);
+ name = gctl_get_asciiparam(req, param);
+ MPASS(name != NULL);
sbuf_printf(sb, " %s", name);
continue;
}
@@ -677,30 +666,21 @@
g_topology_lock();
for (i = 1, n = 0; i < (u_int)*nargs; i++) {
snprintf(param, sizeof(param), "arg%u", i);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", i);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
continue;
- }
- if (g_mirror_find_disk(sc, name) != NULL) {
- gctl_error(req, "Provider %s already inserted.", name);
+ if (g_mirror_find_disk(sc, pp->name) != NULL) {
+ gctl_error(req, "Provider %s already inserted.", pp->name);
continue;
}
- if (strncmp(name, _PATH_DEV, 5) == 0)
- name += 5;
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- gctl_error(req, "Unknown provider %s.", name);
- continue;
- }
cp = g_new_consumer(sc->sc_geom);
if (g_attach(cp, pp) != 0) {
g_destroy_consumer(cp);
- gctl_error(req, "Cannot attach to provider %s.", name);
+ gctl_error(req, "Cannot attach to provider %s.", pp->name);
continue;
}
if (g_access(cp, 0, 1, 1) != 0) {
- gctl_error(req, "Cannot access provider %s.", name);
+ gctl_error(req, "Cannot access provider %s.", pp->name);
err:
g_detach(cp);
g_destroy_consumer(cp);
@@ -709,14 +689,14 @@
mdsize = (sc->sc_type == G_MIRROR_TYPE_AUTOMATIC) ?
pp->sectorsize : 0;
if (sc->sc_provider->mediasize > pp->mediasize - mdsize) {
- gctl_error(req, "Provider %s too small.", name);
+ gctl_error(req, "Provider %s too small.", pp->name);
err2:
g_access(cp, 0, -1, -1);
goto err;
}
if ((sc->sc_provider->sectorsize % pp->sectorsize) != 0) {
gctl_error(req, "Invalid sectorsize of provider %s.",
- name);
+ pp->name);
goto err2;
}
if (sc->sc_type != G_MIRROR_TYPE_AUTOMATIC) {
@@ -731,7 +711,7 @@
md.md_dflags |= G_MIRROR_DISK_FLAG_INACTIVE;
if (g_mirror_add_disk(sc, pp, &md) != 0) {
sc->sc_ndisks--;
- gctl_error(req, "Disk %s not inserted.", name);
+ gctl_error(req, "Disk %s not inserted.", pp->name);
}
g_topology_lock();
continue;
Index: head/sys/geom/mountver/g_mountver.c
===================================================================
--- head/sys/geom/mountver/g_mountver.c
+++ head/sys/geom/mountver/g_mountver.c
@@ -404,7 +404,6 @@
g_mountver_ctl_create(struct gctl_req *req, struct g_class *mp)
{
struct g_provider *pp;
- const char *name;
char param[16];
int i, *nargs;
@@ -421,19 +420,9 @@
}
for (i = 0; i < *nargs; i++) {
snprintf(param, sizeof(param), "arg%d", i);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%d' argument", i);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_MOUNTVER_DEBUG(1, "Provider %s is invalid.", name);
- gctl_error(req, "Provider %s is invalid.", name);
- return;
- }
if (g_mountver_create(req, mp, pp) != 0)
return;
}
Index: head/sys/geom/nop/g_nop.c
===================================================================
--- head/sys/geom/nop/g_nop.c
+++ head/sys/geom/nop/g_nop.c
@@ -544,7 +544,7 @@
intmax_t *val, error, rfailprob, wfailprob, count_until_fail, offset,
secsize, size, stripesize, stripeoffset, delaymsec,
rdelayprob, wdelayprob;
- const char *name, *physpath, *gnopname;
+ const char *physpath, *gnopname;
char param[16];
int i, *nargs;
@@ -671,19 +671,9 @@
for (i = 0; i < *nargs; i++) {
snprintf(param, sizeof(param), "arg%d", i);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%d' argument", i);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_NOP_DEBUG(1, "Provider %s is invalid.", name);
- gctl_error(req, "Provider %s is invalid.", name);
- return;
- }
if (g_nop_create(req, mp, pp,
gnopname,
error == -1 ? EIO : (int)error,
@@ -708,7 +698,6 @@
struct g_provider *pp;
intmax_t *val, delaymsec, error, rdelayprob, rfailprob, wdelayprob,
wfailprob, count_until_fail;
- const char *name;
char param[16];
int i, *nargs;
@@ -782,17 +771,12 @@
for (i = 0; i < *nargs; i++) {
snprintf(param, sizeof(param), "arg%d", i);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%d' argument", i);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL || pp->geom->class != mp) {
- G_NOP_DEBUG(1, "Provider %s is invalid.", name);
- gctl_error(req, "Provider %s is invalid.", name);
+ if (pp->geom->class != mp) {
+ G_NOP_DEBUG(1, "Provider %s is invalid.", pp->name);
+ gctl_error(req, "Provider %s is invalid.", pp->name);
return;
}
sc = pp->geom->softc;
@@ -879,7 +863,6 @@
{
struct g_nop_softc *sc;
struct g_provider *pp;
- const char *name;
char param[16];
int i, *nargs;
@@ -897,17 +880,12 @@
for (i = 0; i < *nargs; i++) {
snprintf(param, sizeof(param), "arg%d", i);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%d' argument", i);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL || pp->geom->class != mp) {
- G_NOP_DEBUG(1, "Provider %s is invalid.", name);
- gctl_error(req, "Provider %s is invalid.", name);
+ if (pp->geom->class != mp) {
+ G_NOP_DEBUG(1, "Provider %s is invalid.", pp->name);
+ gctl_error(req, "Provider %s is invalid.", pp->name);
return;
}
sc = pp->geom->softc;
Index: head/sys/geom/raid3/g_raid3_ctl.c
===================================================================
--- head/sys/geom/raid3/g_raid3_ctl.c
+++ head/sys/geom/raid3/g_raid3_ctl.c
@@ -422,24 +422,13 @@
gctl_error(req, "No '%s' argument.", "hardcode");
return;
}
- name = gctl_get_asciiparam(req, "arg1");
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", 1);
+ pp = gctl_get_provider(req, "arg1");
+ if (pp == NULL)
return;
- }
if (gctl_get_param(req, "number", NULL) != NULL)
no = gctl_get_paraml(req, "number", sizeof(*no));
else
no = NULL;
- if (strncmp(name, _PATH_DEV, 5) == 0)
- name += 5;
- g_topology_lock();
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- g_topology_unlock();
- gctl_error(req, "Invalid provider.");
- return;
- }
gp = g_new_geomf(mp, "raid3:insert");
gp->orphan = g_raid3_ctl_insert_orphan;
cp = g_new_consumer(gp);
Index: head/sys/geom/stripe/g_stripe.c
===================================================================
--- head/sys/geom/stripe/g_stripe.c
+++ head/sys/geom/stripe/g_stripe.c
@@ -1091,19 +1091,9 @@
/* Check all providers are valid */
for (no = 1; no < *nargs; no++) {
snprintf(param, sizeof(param), "arg%u", no);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", no);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL)
return;
- }
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- if (pp == NULL) {
- G_STRIPE_DEBUG(1, "Disk %s is invalid.", name);
- gctl_error(req, "Disk %s is invalid.", name);
- return;
- }
}
gp = g_stripe_create(mp, &md, G_STRIPE_TYPE_MANUAL);
@@ -1117,15 +1107,13 @@
sbuf_printf(sb, "Can't attach disk(s) to %s:", gp->name);
for (attached = 0, no = 1; no < *nargs; no++) {
snprintf(param, sizeof(param), "arg%u", no);
- name = gctl_get_asciiparam(req, param);
- if (name == NULL) {
- gctl_error(req, "No 'arg%u' argument.", no);
+ pp = gctl_get_provider(req, param);
+ if (pp == NULL) {
+ name = gctl_get_asciiparam(req, param);
+ MPASS(name != NULL);
+ sbuf_printf(sb, " %s", name);
continue;
}
- if (strncmp(name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
- name += strlen(_PATH_DEV);
- pp = g_provider_by_name(name);
- KASSERT(pp != NULL, ("Provider %s disappear?!", name));
if (g_stripe_add_disk(sc, pp, no - 1) != 0) {
G_STRIPE_DEBUG(1, "Disk %u (%s) not attached to %s.",
no, pp->name, gp->name);
Index: head/sys/geom/virstor/g_virstor.c
===================================================================
--- head/sys/geom/virstor/g_virstor.c
+++ head/sys/geom/virstor/g_virstor.c
@@ -313,32 +313,19 @@
for (i = 1; i < *nargs; i++) {
struct g_virstor_metadata md;
char aname[8];
- const char *prov_name;
struct g_provider *pp;
struct g_consumer *cp;
u_int nc;
u_int j;
snprintf(aname, sizeof aname, "arg%d", i);
- prov_name = gctl_get_asciiparam(req, aname);
- if (prov_name == NULL) {
- gctl_error(req, "Error fetching argument '%s'", aname);
- g_topology_unlock();
- return;
- }
- if (strncmp(prov_name, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
- prov_name += sizeof(_PATH_DEV) - 1;
-
- pp = g_provider_by_name(prov_name);
+ pp = gctl_get_provider(req, aname);
if (pp == NULL) {
/* This is the most common error so be verbose about it */
if (added != 0) {
- gctl_error(req, "Invalid provider: '%s' (added"
- " %u components)", prov_name, added);
+ gctl_error(req, "Invalid provider. (added"
+ " %u components)", added);
update_metadata(sc);
- } else {
- gctl_error(req, "Invalid provider: '%s'",
- prov_name);
}
g_topology_unlock();
return;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Nov 16, 6:49 AM (21 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14654771
Default Alt Text
D25739.diff (16 KB)
Attached To
Mode
D25739: Consistently use gctl_get_provider instead of home-grown variants.
Attached
Detach File
Event Timeline
Log In to Comment