HAMMER_BIGBLOCK_SIZE
assert(layer2->bytes_free == HAMMER_BIGBLOCK_SIZE);
volume->vol_free_off += HAMMER_BIGBLOCK_SIZE;
layer2->append_off = HAMMER_BIGBLOCK_SIZE;
block_offset += HAMMER_BIGBLOCK_SIZE) {
if (layer2->append_off > HAMMER_BIGBLOCK_SIZE) {
layer2->bytes_free > HAMMER_BIGBLOCK_SIZE) {
double bytes_used = HAMMER_BIGBLOCK_SIZE -
bytes_used * 100 / HAMMER_BIGBLOCK_SIZE,
collect_blockmap(zone4_offset, HAMMER_BIGBLOCK_SIZE,
collect_blockmap(zone4_offset, HAMMER_BIGBLOCK_SIZE,
collect->track2 = calloc(1, HAMMER_BIGBLOCK_SIZE); /* 1<<23 bytes */
collect->layer2 = calloc(1, HAMMER_BIGBLOCK_SIZE); /* 1<<23 bytes */
track2->bytes_free = HAMMER_BIGBLOCK_SIZE;
HAMMER_BIGBLOCK_SIZE / 100);
reblock.free_level = HAMMER_BIGBLOCK_SIZE - reblock.free_level;
HAMMER_BIGBLOCK_SIZE);
raw_limit += HAMMER_BIGBLOCK_SIZE;
zone_limit = b->phys_offset + HAMMER_BIGBLOCK_SIZE;
block_offset += HAMMER_BIGBLOCK_SIZE) {
block_offset += HAMMER_BIGBLOCK_SIZE) {
fill = layer2.bytes_free * 100 / HAMMER_BIGBLOCK_SIZE;
layer2->append_off = HAMMER_BIGBLOCK_SIZE;
for (i = 0; i < HAMMER_BIGBLOCK_SIZE; i += HAMMER_BUFSIZE) {
block_offset += HAMMER_BIGBLOCK_SIZE) {
HAMMER_BIGBLOCK_SIZE - layer2->bytes_free, 1, 0);
for (i = 0; i < HAMMER_BIGBLOCK_SIZE; i += sizeof(*layer1)) {
assert(i == HAMMER_BIGBLOCK_SIZE);
block_offset += HAMMER_BIGBLOCK_SIZE) {
layer2->append_off = HAMMER_BIGBLOCK_SIZE;
layer2->bytes_free = HAMMER_BIGBLOCK_SIZE;
layer2->append_off = HAMMER_BIGBLOCK_SIZE;
vol_free_off += HAMMER_BIGBLOCK_SIZE;
vol_free_off += HAMMER_BIGBLOCK_SIZE;
phys_offset += HAMMER_BIGBLOCK_SIZE) {
if (undo_limit < HAMMER_BIGBLOCK_SIZE * HAMMER_MIN_UNDO_BIGBLOCKS)
undo_limit = HAMMER_BIGBLOCK_SIZE * HAMMER_MIN_UNDO_BIGBLOCKS;
if (undo_limit < HAMMER_BIGBLOCK_SIZE)
undo_limit = HAMMER_BIGBLOCK_SIZE;
if (undo_limit > HAMMER_BIGBLOCK_SIZE * HAMMER_MAX_UNDO_BIGBLOCKS)
undo_limit = HAMMER_BIGBLOCK_SIZE * HAMMER_MAX_UNDO_BIGBLOCKS;
limit_index = undo_limit / HAMMER_BIGBLOCK_SIZE;
sizetostr(HAMMER_BIGBLOCK_SIZE *
minbuf = HAMMER_BIGBLOCK_SIZE * HAMMER_MIN_UNDO_BIGBLOCKS;
maxbuf = HAMMER_BIGBLOCK_SIZE * HAMMER_MAX_UNDO_BIGBLOCKS;
KKASSERT(layer2->bytes_free == HAMMER_BIGBLOCK_SIZE);
next_offset += (HAMMER_BIGBLOCK_SIZE - offset);
next_offset += (HAMMER_BIGBLOCK_SIZE - offset);
next_offset += (HAMMER_BIGBLOCK_SIZE - offset);
KKASSERT(layer2->bytes_free == HAMMER_BIGBLOCK_SIZE);
next_offset += (HAMMER_BIGBLOCK_SIZE - offset);
next_offset += (HAMMER_BIGBLOCK_SIZE - offset);
if (layer2->bytes_free == HAMMER_BIGBLOCK_SIZE)
resv->append_off = HAMMER_BIGBLOCK_SIZE;
HAMMER_BIGBLOCK_SIZE,
resv->append_off = HAMMER_BIGBLOCK_SIZE;
if (layer2->bytes_free == HAMMER_BIGBLOCK_SIZE)
if (layer2->bytes_free == HAMMER_BIGBLOCK_SIZE)
KKASSERT(layer2->bytes_free <= HAMMER_BIGBLOCK_SIZE);
if (layer2->bytes_free == HAMMER_BIGBLOCK_SIZE) {
if (layer2->bytes_free == HAMMER_BIGBLOCK_SIZE) {
KKASSERT(bytes <= HAMMER_BIGBLOCK_SIZE);
temp = layer2->bytes_free - HAMMER_BIGBLOCK_SIZE * 2;
KKASSERT(layer2->bytes_free <= HAMMER_BIGBLOCK_SIZE);
#define HAMMER_HINTBLOCK_SIZE (HAMMER_BIGBLOCK_SIZE * 4)
#define HAMMER_BIGBLOCK_SIZE64 ((uint64_t)HAMMER_BIGBLOCK_SIZE)
#define HAMMER_BIGBLOCK_MASK (HAMMER_BIGBLOCK_SIZE - 1)
#define HAMMER_BIGBLOCK_MASK64 ((uint64_t)HAMMER_BIGBLOCK_SIZE - 1)
#if (1 << HAMMER_BIGBLOCK_BITS) != HAMMER_BIGBLOCK_SIZE
(HAMMER_BIGBLOCK_SIZE / HAMMER_BUFSIZE)
((int)(HAMMER_BIGBLOCK_SIZE / sizeof(struct hammer_blockmap_layer1)))
((int)(HAMMER_BIGBLOCK_SIZE / sizeof(struct hammer_blockmap_layer2)))
(((offset) + HAMMER_BIGBLOCK_SIZE) & ~HAMMER_BIGBLOCK_MASK64)
(HAMMER_OFF_SHORT_ENCODE(zone3_offset) / HAMMER_BIGBLOCK_SIZE)
reblock->free_level > HAMMER_BIGBLOCK_SIZE)
if (reblock->free_level >= HAMMER_BIGBLOCK_SIZE * 8 / 10)
bfree = ondisk->vol0_stat_freebigblocks * HAMMER_BIGBLOCK_SIZE;
bfree = ondisk->vol0_stat_freebigblocks * HAMMER_BIGBLOCK_SIZE;
alloc_offset += HAMMER_BIGBLOCK_SIZE;
block_offset += HAMMER_BIGBLOCK_SIZE) {
layer2->append_off = HAMMER_BIGBLOCK_SIZE;
layer2->bytes_free = HAMMER_BIGBLOCK_SIZE;
layer2->append_off = HAMMER_BIGBLOCK_SIZE;
block_offset += HAMMER_BIGBLOCK_SIZE) {
layer2->bytes_free == HAMMER_BIGBLOCK_SIZE)
block_offset += HAMMER_BIGBLOCK_SIZE) {
block_offset += HAMMER_BIGBLOCK_SIZE) {
layer2->bytes_free == HAMMER_BIGBLOCK_SIZE)