Merge commit 'refs/top-bases/gcc-branch' into gcc-branch
This commit is contained in:
commit
68b6902a18
|
@ -2331,7 +2331,7 @@ nvlist_xpack(nvlist_t *nvl, char **bufp, size_t *buflen, int encoding,
|
||||||
*/
|
*/
|
||||||
nv_priv_init(&nvpriv, nva, 0);
|
nv_priv_init(&nvpriv, nva, 0);
|
||||||
|
|
||||||
if (err = nvlist_size(nvl, &alloc_size, encoding))
|
if ((err = nvlist_size(nvl, &alloc_size, encoding)))
|
||||||
return (err);
|
return (err);
|
||||||
|
|
||||||
if ((buf = nv_mem_zalloc(&nvpriv, alloc_size)) == NULL)
|
if ((buf = nv_mem_zalloc(&nvpriv, alloc_size)) == NULL)
|
||||||
|
|
|
@ -145,8 +145,9 @@
|
||||||
|
|
||||||
/* The following are some convenience macros. */
|
/* The following are some convenience macros. */
|
||||||
#define U8_PUT_3BYTES_INTO_UTF32(u, b1, b2, b3) \
|
#define U8_PUT_3BYTES_INTO_UTF32(u, b1, b2, b3) \
|
||||||
(u) = ((uint32_t)(b1) & 0x0F) << 12 | ((uint32_t)(b2) & 0x3F) << 6 | \
|
(u) = (((uint32_t)(b1) & 0x0F) << 12) | \
|
||||||
(uint32_t)(b3) & 0x3F;
|
(((uint32_t)(b2) & 0x3F) << 6) | \
|
||||||
|
((uint32_t)(b3) & 0x3F);
|
||||||
|
|
||||||
#define U8_SIMPLE_SWAP(a, b, t) \
|
#define U8_SIMPLE_SWAP(a, b, t) \
|
||||||
(t) = (a); \
|
(t) = (a); \
|
||||||
|
|
|
@ -179,8 +179,8 @@ zfs_deleg_verify_nvlist(nvlist_t *nvp)
|
||||||
nvpair_name(perm_name));
|
nvpair_name(perm_name));
|
||||||
if (error)
|
if (error)
|
||||||
return (-1);
|
return (-1);
|
||||||
} while (perm_name = nvlist_next_nvpair(perms, perm_name));
|
} while ((perm_name = nvlist_next_nvpair(perms, perm_name)));
|
||||||
} while (who = nvlist_next_nvpair(nvp, who));
|
} while ((who = nvlist_next_nvpair(nvp, who)));
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1217,7 +1217,7 @@ zfs_build_perms(zfs_handle_t *zhp, char *whostr, char *perms,
|
||||||
zfs_perms_add_who_nvlist(who_nvp, who_id, who_tok,
|
zfs_perms_add_who_nvlist(who_nvp, who_id, who_tok,
|
||||||
perms_nvp, sets_nvp, who_type, inherit);
|
perms_nvp, sets_nvp, who_type, inherit);
|
||||||
|
|
||||||
} while (who_tok = strtok(NULL, ","));
|
} while ((who_tok = strtok(NULL, ",")));
|
||||||
*nvp = who_nvp;
|
*nvp = who_nvp;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
@ -1624,9 +1624,9 @@ zfs_perm_get(zfs_handle_t *zhp, zfs_allow_t **zfs_perms)
|
||||||
if (zfs_coalesce_perm(zhp, allownode,
|
if (zfs_coalesce_perm(zhp, allownode,
|
||||||
nvpair_name(perm_pair), ld) != 0)
|
nvpair_name(perm_pair), ld) != 0)
|
||||||
goto abort;
|
goto abort;
|
||||||
} while (perm_pair = nvlist_next_nvpair(permnv,
|
} while ((perm_pair = nvlist_next_nvpair(permnv,
|
||||||
perm_pair));
|
perm_pair)));
|
||||||
} while (who_pair = nvlist_next_nvpair(sourcenv, who_pair));
|
} while ((who_pair = nvlist_next_nvpair(sourcenv, who_pair)));
|
||||||
|
|
||||||
source_pair = nvlist_next_nvpair(nvlist, source_pair);
|
source_pair = nvlist_next_nvpair(nvlist, source_pair);
|
||||||
if (source_pair == NULL)
|
if (source_pair == NULL)
|
||||||
|
@ -2846,7 +2846,7 @@ create_parents(libzfs_handle_t *hdl, char *target, int prefixlen)
|
||||||
* up to the prefixlen-long one.
|
* up to the prefixlen-long one.
|
||||||
*/
|
*/
|
||||||
for (cp = target + prefixlen + 1;
|
for (cp = target + prefixlen + 1;
|
||||||
cp = strchr(cp, '/'); *cp = '/', cp++) {
|
(cp = strchr(cp, '/')); *cp = '/', cp++) {
|
||||||
char *logstr;
|
char *logstr;
|
||||||
|
|
||||||
*cp = '\0';
|
*cp = '\0';
|
||||||
|
@ -3701,7 +3701,7 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force)
|
||||||
*/
|
*/
|
||||||
if ((zhp->zfs_type == ZFS_TYPE_VOLUME) &&
|
if ((zhp->zfs_type == ZFS_TYPE_VOLUME) &&
|
||||||
(zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) {
|
(zhp = make_dataset_handle(zhp->zfs_hdl, zhp->zfs_name))) {
|
||||||
if (err = zvol_create_link(zhp->zfs_hdl, zhp->zfs_name)) {
|
if ((err = zvol_create_link(zhp->zfs_hdl, zhp->zfs_name))) {
|
||||||
zfs_close(zhp);
|
zfs_close(zhp);
|
||||||
return (err);
|
return (err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3309,7 +3309,7 @@ arc_tempreserve_space(uint64_t reserve, uint64_t txg)
|
||||||
* in order to compress/encrypt/etc the data. We therefor need to
|
* in order to compress/encrypt/etc the data. We therefor need to
|
||||||
* make sure that there is sufficient available memory for this.
|
* make sure that there is sufficient available memory for this.
|
||||||
*/
|
*/
|
||||||
if (error = arc_memory_throttle(reserve, txg))
|
if ((error = arc_memory_throttle(reserve, txg)))
|
||||||
return (error);
|
return (error);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1581,7 +1581,7 @@ dbuf_prefetch(dnode_t *dn, uint64_t blkid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* dbuf_find() returns with db_mtx held */
|
/* dbuf_find() returns with db_mtx held */
|
||||||
if (db = dbuf_find(dn, 0, blkid)) {
|
if ((db = dbuf_find(dn, 0, blkid))) {
|
||||||
if (refcount_count(&db->db_holds) > 0) {
|
if (refcount_count(&db->db_holds) > 0) {
|
||||||
/*
|
/*
|
||||||
* This dbuf is active. We assume that it is
|
* This dbuf is active. We assume that it is
|
||||||
|
@ -2100,7 +2100,7 @@ dbuf_sync_list(list_t *list, dmu_tx_t *tx)
|
||||||
{
|
{
|
||||||
dbuf_dirty_record_t *dr;
|
dbuf_dirty_record_t *dr;
|
||||||
|
|
||||||
while (dr = list_head(list)) {
|
while ((dr = list_head(list))) {
|
||||||
if (dr->dr_zio != NULL) {
|
if (dr->dr_zio != NULL) {
|
||||||
/*
|
/*
|
||||||
* If we find an already initialized zio then we
|
* If we find an already initialized zio then we
|
||||||
|
|
|
@ -803,7 +803,7 @@ dmu_objset_snapshot(char *fsname, char *snapname, boolean_t recursive)
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
while (osn = list_head(&sn.objsets)) {
|
while ((osn = list_head(&sn.objsets))) {
|
||||||
list_remove(&sn.objsets, osn);
|
list_remove(&sn.objsets, osn);
|
||||||
zil_resume(dmu_objset_zil(osn->os));
|
zil_resume(dmu_objset_zil(osn->os));
|
||||||
dmu_objset_close(osn->os);
|
dmu_objset_close(osn->os);
|
||||||
|
@ -823,7 +823,7 @@ dmu_objset_sync_dnodes(list_t *list, dmu_tx_t *tx)
|
||||||
{
|
{
|
||||||
dnode_t *dn;
|
dnode_t *dn;
|
||||||
|
|
||||||
while (dn = list_head(list)) {
|
while ((dn = list_head(list))) {
|
||||||
ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT);
|
ASSERT(dn->dn_object != DMU_META_DNODE_OBJECT);
|
||||||
ASSERT(dn->dn_dbuf->db_data_pending);
|
ASSERT(dn->dn_dbuf->db_data_pending);
|
||||||
/*
|
/*
|
||||||
|
@ -931,7 +931,7 @@ dmu_objset_sync(objset_impl_t *os, zio_t *pio, dmu_tx_t *tx)
|
||||||
dmu_objset_sync_dnodes(&os->os_dirty_dnodes[txgoff], tx);
|
dmu_objset_sync_dnodes(&os->os_dirty_dnodes[txgoff], tx);
|
||||||
|
|
||||||
list = &os->os_meta_dnode->dn_dirty_records[txgoff];
|
list = &os->os_meta_dnode->dn_dirty_records[txgoff];
|
||||||
while (dr = list_head(list)) {
|
while ((dr = list_head(list))) {
|
||||||
ASSERT(dr->dr_dbuf->db_level == 0);
|
ASSERT(dr->dr_dbuf->db_level == 0);
|
||||||
list_remove(list, dr);
|
list_remove(list, dr);
|
||||||
if (dr->dr_zio)
|
if (dr->dr_zio)
|
||||||
|
|
|
@ -999,7 +999,7 @@ dmu_tx_commit(dmu_tx_t *tx)
|
||||||
|
|
||||||
ASSERT(tx->tx_txg != 0);
|
ASSERT(tx->tx_txg != 0);
|
||||||
|
|
||||||
while (txh = list_head(&tx->tx_holds)) {
|
while ((txh = list_head(&tx->tx_holds))) {
|
||||||
dnode_t *dn = txh->txh_dnode;
|
dnode_t *dn = txh->txh_dnode;
|
||||||
|
|
||||||
list_remove(&tx->tx_holds, txh);
|
list_remove(&tx->tx_holds, txh);
|
||||||
|
@ -1042,7 +1042,7 @@ dmu_tx_abort(dmu_tx_t *tx)
|
||||||
|
|
||||||
ASSERT(tx->tx_txg == 0);
|
ASSERT(tx->tx_txg == 0);
|
||||||
|
|
||||||
while (txh = list_head(&tx->tx_holds)) {
|
while ((txh = list_head(&tx->tx_holds))) {
|
||||||
dnode_t *dn = txh->txh_dnode;
|
dnode_t *dn = txh->txh_dnode;
|
||||||
|
|
||||||
list_remove(&tx->tx_holds, txh);
|
list_remove(&tx->tx_holds, txh);
|
||||||
|
|
|
@ -600,8 +600,8 @@ dnode_hold_impl(objset_impl_t *os, uint64_t object, int flag,
|
||||||
dnode_t **winner;
|
dnode_t **winner;
|
||||||
children_dnodes = kmem_zalloc(epb * sizeof (dnode_t *),
|
children_dnodes = kmem_zalloc(epb * sizeof (dnode_t *),
|
||||||
KM_SLEEP);
|
KM_SLEEP);
|
||||||
if (winner = dmu_buf_set_user(&db->db, children_dnodes, NULL,
|
if ((winner = dmu_buf_set_user(&db->db, children_dnodes, NULL,
|
||||||
dnode_buf_pageout)) {
|
dnode_buf_pageout))) {
|
||||||
kmem_free(children_dnodes, epb * sizeof (dnode_t *));
|
kmem_free(children_dnodes, epb * sizeof (dnode_t *));
|
||||||
children_dnodes = winner;
|
children_dnodes = winner;
|
||||||
}
|
}
|
||||||
|
|
|
@ -422,7 +422,7 @@ dnode_undirty_dbufs(list_t *list)
|
||||||
{
|
{
|
||||||
dbuf_dirty_record_t *dr;
|
dbuf_dirty_record_t *dr;
|
||||||
|
|
||||||
while (dr = list_head(list)) {
|
while ((dr = list_head(list))) {
|
||||||
dmu_buf_impl_t *db = dr->dr_dbuf;
|
dmu_buf_impl_t *db = dr->dr_dbuf;
|
||||||
uint64_t txg = dr->dr_txg;
|
uint64_t txg = dr->dr_txg;
|
||||||
|
|
||||||
|
|
|
@ -101,13 +101,13 @@ dsl_deleg_can_allow(char *ddname, nvlist_t *nvp, cred_t *cr)
|
||||||
if ((error = dsl_deleg_access(ddname, ZFS_DELEG_PERM_ALLOW, cr)) != 0)
|
if ((error = dsl_deleg_access(ddname, ZFS_DELEG_PERM_ALLOW, cr)) != 0)
|
||||||
return (error);
|
return (error);
|
||||||
|
|
||||||
while (whopair = nvlist_next_nvpair(nvp, whopair)) {
|
while ((whopair = nvlist_next_nvpair(nvp, whopair))) {
|
||||||
nvlist_t *perms;
|
nvlist_t *perms;
|
||||||
nvpair_t *permpair = NULL;
|
nvpair_t *permpair = NULL;
|
||||||
|
|
||||||
VERIFY(nvpair_value_nvlist(whopair, &perms) == 0);
|
VERIFY(nvpair_value_nvlist(whopair, &perms) == 0);
|
||||||
|
|
||||||
while (permpair = nvlist_next_nvpair(perms, permpair)) {
|
while ((permpair = nvlist_next_nvpair(perms, permpair))) {
|
||||||
const char *perm = nvpair_name(permpair);
|
const char *perm = nvpair_name(permpair);
|
||||||
|
|
||||||
if (strcmp(perm, ZFS_DELEG_PERM_ALLOW) == 0)
|
if (strcmp(perm, ZFS_DELEG_PERM_ALLOW) == 0)
|
||||||
|
@ -138,7 +138,7 @@ dsl_deleg_can_unallow(char *ddname, nvlist_t *nvp, cred_t *cr)
|
||||||
(void) snprintf(idstr, sizeof (idstr), "%lld",
|
(void) snprintf(idstr, sizeof (idstr), "%lld",
|
||||||
(longlong_t)crgetuid(cr));
|
(longlong_t)crgetuid(cr));
|
||||||
|
|
||||||
while (whopair = nvlist_next_nvpair(nvp, whopair)) {
|
while ((whopair = nvlist_next_nvpair(nvp, whopair))) {
|
||||||
zfs_deleg_who_type_t type = nvpair_name(whopair)[0];
|
zfs_deleg_who_type_t type = nvpair_name(whopair)[0];
|
||||||
|
|
||||||
if (type != ZFS_DELEG_USER &&
|
if (type != ZFS_DELEG_USER &&
|
||||||
|
@ -166,7 +166,7 @@ dsl_deleg_set_sync(void *arg1, void *arg2, cred_t *cr, dmu_tx_t *tx)
|
||||||
DMU_OT_DSL_PERMS, DMU_OT_NONE, 0, tx);
|
DMU_OT_DSL_PERMS, DMU_OT_NONE, 0, tx);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (whopair = nvlist_next_nvpair(nvp, whopair)) {
|
while ((whopair = nvlist_next_nvpair(nvp, whopair))) {
|
||||||
const char *whokey = nvpair_name(whopair);
|
const char *whokey = nvpair_name(whopair);
|
||||||
nvlist_t *perms;
|
nvlist_t *perms;
|
||||||
nvpair_t *permpair = NULL;
|
nvpair_t *permpair = NULL;
|
||||||
|
@ -181,7 +181,7 @@ dsl_deleg_set_sync(void *arg1, void *arg2, cred_t *cr, dmu_tx_t *tx)
|
||||||
whokey, 8, 1, &jumpobj, tx) == 0);
|
whokey, 8, 1, &jumpobj, tx) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (permpair = nvlist_next_nvpair(perms, permpair)) {
|
while ((permpair = nvlist_next_nvpair(perms, permpair))) {
|
||||||
const char *perm = nvpair_name(permpair);
|
const char *perm = nvpair_name(permpair);
|
||||||
uint64_t n = 0;
|
uint64_t n = 0;
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ dsl_deleg_unset_sync(void *arg1, void *arg2, cred_t *cr, dmu_tx_t *tx)
|
||||||
if (zapobj == 0)
|
if (zapobj == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while (whopair = nvlist_next_nvpair(nvp, whopair)) {
|
while ((whopair = nvlist_next_nvpair(nvp, whopair))) {
|
||||||
const char *whokey = nvpair_name(whopair);
|
const char *whokey = nvpair_name(whopair);
|
||||||
nvlist_t *perms;
|
nvlist_t *perms;
|
||||||
nvpair_t *permpair = NULL;
|
nvpair_t *permpair = NULL;
|
||||||
|
@ -229,7 +229,7 @@ dsl_deleg_unset_sync(void *arg1, void *arg2, cred_t *cr, dmu_tx_t *tx)
|
||||||
if (zap_lookup(mos, zapobj, whokey, 8, 1, &jumpobj) != 0)
|
if (zap_lookup(mos, zapobj, whokey, 8, 1, &jumpobj) != 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
while (permpair = nvlist_next_nvpair(perms, permpair)) {
|
while ((permpair = nvlist_next_nvpair(perms, permpair))) {
|
||||||
const char *perm = nvpair_name(permpair);
|
const char *perm = nvpair_name(permpair);
|
||||||
uint64_t n = 0;
|
uint64_t n = 0;
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ dsl_deleg_set(const char *ddname, nvlist_t *nvp, boolean_t unset)
|
||||||
return (ENOTSUP);
|
return (ENOTSUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (whopair = nvlist_next_nvpair(nvp, whopair))
|
while ((whopair = nvlist_next_nvpair(nvp, whopair)))
|
||||||
blocks_modified++;
|
blocks_modified++;
|
||||||
|
|
||||||
error = dsl_sync_task_do(dd->dd_pool, NULL,
|
error = dsl_sync_task_do(dd->dd_pool, NULL,
|
||||||
|
|
|
@ -870,7 +870,7 @@ dsl_dir_tempreserve_clear(void *tr_cookie, dmu_tx_t *tx)
|
||||||
if (tr_cookie == NULL)
|
if (tr_cookie == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while (tr = list_head(tr_list)) {
|
while ((tr = list_head(tr_list))) {
|
||||||
if (tr->tr_dp) {
|
if (tr->tr_dp) {
|
||||||
dsl_pool_tempreserve_clear(tr->tr_dp, tr->tr_size, tx);
|
dsl_pool_tempreserve_clear(tr->tr_dp, tr->tr_size, tx);
|
||||||
} else if (tr->tr_ds) {
|
} else if (tr->tr_ds) {
|
||||||
|
@ -1221,8 +1221,8 @@ dsl_dir_rename_check(void *arg1, void *arg2, dmu_tx_t *tx)
|
||||||
if (closest_common_ancestor(dd, ra->newparent) == dd)
|
if (closest_common_ancestor(dd, ra->newparent) == dd)
|
||||||
return (EINVAL);
|
return (EINVAL);
|
||||||
|
|
||||||
if (err = dsl_dir_transfer_possible(dd->dd_parent,
|
if ((err = dsl_dir_transfer_possible(dd->dd_parent,
|
||||||
ra->newparent, myspace))
|
ra->newparent, myspace)))
|
||||||
return (err);
|
return (err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -297,7 +297,7 @@ dsl_pool_sync(dsl_pool_t *dp, uint64_t txg)
|
||||||
|
|
||||||
dp->dp_read_overhead = 0;
|
dp->dp_read_overhead = 0;
|
||||||
zio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED);
|
zio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED);
|
||||||
while (ds = txg_list_remove(&dp->dp_dirty_datasets, txg)) {
|
while ((ds = txg_list_remove(&dp->dp_dirty_datasets, txg))) {
|
||||||
if (!list_link_active(&ds->ds_synced_link))
|
if (!list_link_active(&ds->ds_synced_link))
|
||||||
list_insert_tail(&dp->dp_synced_datasets, ds);
|
list_insert_tail(&dp->dp_synced_datasets, ds);
|
||||||
else
|
else
|
||||||
|
@ -386,7 +386,7 @@ dsl_pool_zil_clean(dsl_pool_t *dp)
|
||||||
{
|
{
|
||||||
dsl_dataset_t *ds;
|
dsl_dataset_t *ds;
|
||||||
|
|
||||||
while (ds = list_head(&dp->dp_synced_datasets)) {
|
while ((ds = list_head(&dp->dp_synced_datasets))) {
|
||||||
list_remove(&dp->dp_synced_datasets, ds);
|
list_remove(&dp->dp_synced_datasets, ds);
|
||||||
ASSERT(ds->ds_user_ptr != NULL);
|
ASSERT(ds->ds_user_ptr != NULL);
|
||||||
zil_clean(((objset_impl_t *)ds->ds_user_ptr)->os_zil);
|
zil_clean(((objset_impl_t *)ds->ds_user_ptr)->os_zil);
|
||||||
|
|
|
@ -139,7 +139,7 @@ dsl_sync_task_group_destroy(dsl_sync_task_group_t *dstg)
|
||||||
{
|
{
|
||||||
dsl_sync_task_t *dst;
|
dsl_sync_task_t *dst;
|
||||||
|
|
||||||
while (dst = list_head(&dstg->dstg_tasks)) {
|
while ((dst = list_head(&dstg->dstg_tasks))) {
|
||||||
list_remove(&dstg->dstg_tasks, dst);
|
list_remove(&dstg->dstg_tasks, dst);
|
||||||
kmem_free(dst, sizeof (dsl_sync_task_t));
|
kmem_free(dst, sizeof (dsl_sync_task_t));
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,13 +75,13 @@ refcount_destroy_many(refcount_t *rc, uint64_t number)
|
||||||
reference_t *ref;
|
reference_t *ref;
|
||||||
|
|
||||||
ASSERT(rc->rc_count == number);
|
ASSERT(rc->rc_count == number);
|
||||||
while (ref = list_head(&rc->rc_list)) {
|
while ((ref = list_head(&rc->rc_list))) {
|
||||||
list_remove(&rc->rc_list, ref);
|
list_remove(&rc->rc_list, ref);
|
||||||
kmem_cache_free(reference_cache, ref);
|
kmem_cache_free(reference_cache, ref);
|
||||||
}
|
}
|
||||||
list_destroy(&rc->rc_list);
|
list_destroy(&rc->rc_list);
|
||||||
|
|
||||||
while (ref = list_head(&rc->rc_removed)) {
|
while ((ref = list_head(&rc->rc_removed))) {
|
||||||
list_remove(&rc->rc_removed, ref);
|
list_remove(&rc->rc_removed, ref);
|
||||||
kmem_cache_free(reference_history_cache, ref->ref_removed);
|
kmem_cache_free(reference_history_cache, ref->ref_removed);
|
||||||
kmem_cache_free(reference_cache, ref);
|
kmem_cache_free(reference_cache, ref);
|
||||||
|
|
|
@ -3996,7 +3996,7 @@ spa_sync(spa_t *spa, uint64_t txg)
|
||||||
dsl_pool_sync(dp, txg);
|
dsl_pool_sync(dp, txg);
|
||||||
|
|
||||||
dirty_vdevs = 0;
|
dirty_vdevs = 0;
|
||||||
while (vd = txg_list_remove(&spa->spa_vdev_txg_list, txg)) {
|
while ((vd = txg_list_remove(&spa->spa_vdev_txg_list, txg))) {
|
||||||
vdev_sync(vd, txg);
|
vdev_sync(vd, txg);
|
||||||
dirty_vdevs++;
|
dirty_vdevs++;
|
||||||
}
|
}
|
||||||
|
@ -4080,7 +4080,7 @@ spa_sync(spa_t *spa, uint64_t txg)
|
||||||
/*
|
/*
|
||||||
* Update usable space statistics.
|
* Update usable space statistics.
|
||||||
*/
|
*/
|
||||||
while (vd = txg_list_remove(&spa->spa_vdev_txg_list, TXG_CLEAN(txg)))
|
while ((vd = txg_list_remove(&spa->spa_vdev_txg_list, TXG_CLEAN(txg))))
|
||||||
vdev_sync_done(vd, txg);
|
vdev_sync_done(vd, txg);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1578,7 +1578,7 @@ vdev_sync_done(vdev_t *vd, uint64_t txg)
|
||||||
{
|
{
|
||||||
metaslab_t *msp;
|
metaslab_t *msp;
|
||||||
|
|
||||||
while (msp = txg_list_remove(&vd->vdev_ms_list, TXG_CLEAN(txg)))
|
while ((msp = txg_list_remove(&vd->vdev_ms_list, TXG_CLEAN(txg))))
|
||||||
metaslab_sync_done(msp, txg);
|
metaslab_sync_done(msp, txg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,7 +271,7 @@ mze_destroy(zap_t *zap)
|
||||||
mzap_ent_t *mze;
|
mzap_ent_t *mze;
|
||||||
void *avlcookie = NULL;
|
void *avlcookie = NULL;
|
||||||
|
|
||||||
while (mze = avl_destroy_nodes(&zap->zap_m.zap_avl, &avlcookie))
|
while ((mze = avl_destroy_nodes(&zap->zap_m.zap_avl, &avlcookie)))
|
||||||
kmem_free(mze, sizeof (mzap_ent_t));
|
kmem_free(mze, sizeof (mzap_ent_t));
|
||||||
avl_destroy(&zap->zap_m.zap_avl);
|
avl_destroy(&zap->zap_m.zap_avl);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue