Lines Matching refs:shpp
78 spa_history_log_to_phys(uint64_t log_off, spa_history_phys_t *shpp) in spa_history_log_to_phys() argument
82 phys_len = shpp->sh_phys_max_off - shpp->sh_pool_create_len; in spa_history_log_to_phys()
83 return ((log_off - shpp->sh_pool_create_len) % phys_len in spa_history_log_to_phys()
84 + shpp->sh_pool_create_len); in spa_history_log_to_phys()
91 spa_history_phys_t *shpp; in spa_history_create_obj() local
106 shpp = dbp->db_data; in spa_history_create_obj()
113 shpp->sh_phys_max_off = in spa_history_create_obj()
115 shpp->sh_phys_max_off = MIN(shpp->sh_phys_max_off, 1<<30); in spa_history_create_obj()
116 shpp->sh_phys_max_off = MAX(shpp->sh_phys_max_off, 128<<10); in spa_history_create_obj()
125 spa_history_advance_bof(spa_t *spa, spa_history_phys_t *shpp) in spa_history_advance_bof() argument
132 phys_bof = spa_history_log_to_phys(shpp->sh_bof, shpp); in spa_history_advance_bof()
133 firstread = MIN(sizeof (reclen), shpp->sh_phys_max_off - phys_bof); in spa_history_advance_bof()
140 shpp->sh_pool_create_len, sizeof (reclen) - firstread, in spa_history_advance_bof()
146 shpp->sh_bof += reclen + sizeof (reclen); in spa_history_advance_bof()
147 shpp->sh_records_lost++; in spa_history_advance_bof()
152 spa_history_write(spa_t *spa, void *buf, uint64_t len, spa_history_phys_t *shpp, in spa_history_write() argument
162 while (shpp->sh_phys_max_off - shpp->sh_pool_create_len - in spa_history_write()
163 (shpp->sh_eof - shpp->sh_bof) <= len) { in spa_history_write()
164 if ((err = spa_history_advance_bof(spa, shpp)) != 0) { in spa_history_write()
169 phys_eof = spa_history_log_to_phys(shpp->sh_eof, shpp); in spa_history_write()
170 firstwrite = MIN(len, shpp->sh_phys_max_off - phys_eof); in spa_history_write()
171 shpp->sh_eof += len; in spa_history_write()
177 dmu_write(mos, spa->spa_history, shpp->sh_pool_create_len, in spa_history_write()
259 spa_history_phys_t *shpp; in spa_history_log_sync() local
279 shpp = dbp->db_data; in spa_history_log_sync()
341 ret = spa_history_write(spa, &le_len, sizeof (le_len), shpp, tx); in spa_history_log_sync()
343 ret = spa_history_write(spa, record_packed, reclen, shpp, tx); in spa_history_log_sync()
346 if (ret == 0 && shpp->sh_pool_create_len == 0 && in spa_history_log_sync()
348 shpp->sh_pool_create_len = shpp->sh_bof = shpp->sh_eof; in spa_history_log_sync()
428 spa_history_phys_t *shpp; in spa_history_get() local
448 shpp = dbp->db_data; in spa_history_get()
459 phys_eof = spa_history_log_to_phys(shpp->sh_eof, shpp); in spa_history_get()
461 if (*offp < shpp->sh_pool_create_len) { in spa_history_get()
464 read_len = MIN(*len, shpp->sh_pool_create_len - in spa_history_get()
471 *offp = MAX(*offp, shpp->sh_bof); in spa_history_get()
472 phys_read_off = spa_history_log_to_phys(*offp, shpp); in spa_history_get()
483 shpp->sh_phys_max_off - phys_read_off); in spa_history_get()
484 if (phys_read_off + *len > shpp->sh_phys_max_off) { in spa_history_get()
486 phys_eof - shpp->sh_pool_create_len); in spa_history_get()
506 err = dmu_read(mos, spa->spa_history, shpp->sh_pool_create_len, in spa_history_get()