summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
48c67dc)
Reduce stack usage by 256 bytes by moving buf char array from
the stack to the heap.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
dsl_dir_t **ddp, const char **tailp)
{
dsl_dir_open_spa(spa_t *spa, const char *name, void *tag,
dsl_dir_t **ddp, const char **tailp)
{
const char *next, *nextnext = NULL;
int err;
dsl_dir_t *dd;
const char *next, *nextnext = NULL;
int err;
dsl_dir_t *dd;
+ buf = kmem_alloc(MAXNAMELEN, KM_SLEEP);
err = getcomponent(name, buf, &next);
if (err)
err = getcomponent(name, buf, &next);
if (err)
if (spa == NULL) {
err = spa_open(buf, &spa, FTAG);
if (err) {
dprintf("spa_open(%s) failed\n", buf);
if (spa == NULL) {
err = spa_open(buf, &spa, FTAG);
if (err) {
dprintf("spa_open(%s) failed\n", buf);
rw_exit(&dp->dp_config_rwlock);
if (openedspa)
spa_close(spa, FTAG);
rw_exit(&dp->dp_config_rwlock);
if (openedspa)
spa_close(spa, FTAG);
dsl_dir_close(dd, tag);
if (openedspa)
spa_close(spa, FTAG);
dsl_dir_close(dd, tag);
if (openedspa)
spa_close(spa, FTAG);
if (openedspa)
spa_close(spa, FTAG);
*ddp = dd;
if (openedspa)
spa_close(spa, FTAG);
*ddp = dd;
+error:
+ kmem_free(buf, MAXNAMELEN);