diff options
Diffstat (limited to 'usr/src/lib/libzonecfg/common/libzonecfg.c')
-rw-r--r-- | usr/src/lib/libzonecfg/common/libzonecfg.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/usr/src/lib/libzonecfg/common/libzonecfg.c b/usr/src/lib/libzonecfg/common/libzonecfg.c index ab0f4c498d..bdd63a31e8 100644 --- a/usr/src/lib/libzonecfg/common/libzonecfg.c +++ b/usr/src/lib/libzonecfg/common/libzonecfg.c @@ -4321,6 +4321,26 @@ zonecfg_bind_pool(zone_dochandle_t handle, zoneid_t zoneid, char *pool_err, return (Z_OK); } +int +zonecfg_get_poolname(zone_dochandle_t handle, char *zone, char *pool, + size_t poolsize) +{ + int err; + struct zone_psettab pset_tab; + + err = zonecfg_lookup_pset(handle, &pset_tab); + if ((err != Z_NO_ENTRY) && (err != Z_OK)) + return (err); + + /* pset was found so a temporary pool was created */ + if (err == Z_OK) { + (void) snprintf(pool, poolsize, TMP_POOL_NAME, zone); + return (Z_OK); + } + + /* lookup the poolname in zonecfg */ + return (zonecfg_get_pool(handle, pool, poolsize)); +} static boolean_t svc_enabled(char *svc_name) |