Lines Matching defs:txg
124 * txg Transaction group in which this label was written
781 * which don't have a txg value stored on their label (i.e. spares/cache)
782 * or have not been completely initialized (txg = 0) just return
785 * 'txg' value.
788 vdev_label_read_config(vdev_t *vd, uint64_t txg)
835 * Auxiliary vdevs won't have txg values in their
848 } else if (label_txg <= txg && label_txg > best_txg) {
867 * We found a valid label but it didn't pass txg restrictions.
870 vdev_dbgmsg(vd, "label discarded as txg is too large "
872 (u_longlong_t)txg);
891 uint64_t state, pool_guid, device_guid, txg, spare_pool;
921 &txg) != 0)) {
947 txg == 0 && vdtxg == crtxg)
1164 * We mark it as being from txg 0 to indicate that it's not
1166 * be written again with a meaningful txg by spa_sync().
1179 uint64_t txg = 0ULL;
1182 txg = spa->spa_uberblock.ub_txg;
1183 label = spa_config_generate(spa, vd, txg, B_FALSE);
1490 * Consider the following situation: txg is safely synced to disk. We've
1491 * written the first uberblock for txg + 1, and then we lose power. When we
1492 * come back up, we fail to see the uberblock for txg + 1 because, say,
1493 * it was on a mirrored device and the replica to which we wrote txg + 1
1494 * is now offline. If we then make some changes and sync txg + 1, and then
1496 * conflicting uberblocks on disk with the same txg. The solution is simple:
1497 * among uberblocks with equal txg, choose the one with the latest timestamp.
1519 * Since timestamp and txg are the same if we get this far, either is
1597 * vdev, keeping track of the uberblock with the highest txg in each array.
1625 * that has a configuration which was written in a future txg.
1627 * matches the txg for our uberblock.
1631 "txg %llu", spa->spa_name, (u_longlong_t)ub->ub_txg);
1636 "spa=%s best uberblock (txg=%llu info=0x%llx) "
1638 "uberblock (txg=%llu info=0x%llx)",
1652 "Trying again without txg restrictions.");
1771 * We chose a slot based on the txg. If this uberblock has a special
1773 * current uberblock (it has the same txg). However, the current
1779 * txg's uberblock. Rewinding to the previous txg's uberblock may not
1899 vdev_t *vd, int l, uint64_t txg, int flags)
1911 vd->vdev_child[c], l, txg, flags);
1937 label = spa_config_generate(vd->vdev_spa, vd, txg, B_FALSE);
1962 vdev_label_sync_list(spa_t *spa, int l, uint64_t txg, int flags)
1984 vdev_label_sync(vio, good_writes, vd, l, txg, flags);
2001 l, txg, flags);
2042 vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg)
2064 ASSERT(ub->ub_txg <= txg);
2073 if (ub->ub_txg < txg) {
2075 txg, spa->spa_mmp.mmp_delay);
2082 if (txg > spa_freeze_txg(spa))
2085 ASSERT(txg <= spa->spa_final_txg);
2090 * written in this txg will be committed to stable storage
2096 txg_list_head(&spa->spa_vdev_txg_list, TXG_CLEAN(txg)); vd != NULL;
2097 vd = txg_list_next(&spa->spa_vdev_txg_list, vd, TXG_CLEAN(txg)))
2111 if ((error = vdev_label_sync_list(spa, 0, txg, flags)) != 0) {
2156 if ((error = vdev_label_sync_list(spa, 1, txg, flags)) != 0) {