Lines Matching full:area
116 void *area; member
119 * An area of zeros used to clear the next area.
124 * An area used for header. The header can be written
131 * Used to keep track of which metadata area the data in
158 * metadata area.
179 * a single metadata area. in alloc_area()
181 ps->area = vmalloc(len); in alloc_area()
182 if (!ps->area) in alloc_area()
199 vfree(ps->area); in alloc_area()
207 vfree(ps->area); in free_area()
208 ps->area = NULL; in free_area()
232 static int chunk_io(struct pstore *ps, void *area, chunk_t chunk, blk_opf_t opf, in chunk_io() argument
243 .mem.ptr.vma = area, in chunk_io()
268 * Convert a metadata area index to a chunk index.
270 static chunk_t area_location(struct pstore *ps, chunk_t area) in area_location() argument
272 return NUM_SNAPSHOT_HDR_CHUNKS + ((ps->exceptions_per_area + 1) * area); in area_location()
285 * Read or write a metadata area. Remembering to skip the first
292 return chunk_io(ps, ps->area, chunk, opf, 0); in area_io()
297 memset(ps->area, 0, ps->store->chunk_size << SECTOR_SHIFT); in zero_memory_area()
300 static int zero_disk_area(struct pstore *ps, chunk_t area) in zero_disk_area() argument
302 return chunk_io(ps, ps->zero_area, area_location(ps, area), in zero_disk_area()
422 struct disk_exception *de = get_exception(ps, ps->area, index); in write_exception()
431 struct disk_exception *de = get_exception(ps, ps->area, index); in clear_exception()
439 * Registers the exceptions that are present in the current area.
440 * 'full' is filled in to indicate if the area has been
453 /* presume the area is full */ in insert_exceptions()
461 * the COW device, where the first metadata area in insert_exceptions()
463 * exceptions. Therefore the area is not full. in insert_exceptions()
511 * we find a partially full area. in read_exceptions()
515 void *area; in read_exceptions() local
536 area = dm_bufio_read(client, chunk, &bp); in read_exceptions()
537 if (IS_ERR(area)) { in read_exceptions()
538 r = PTR_ERR(area); in read_exceptions()
542 r = insert_exceptions(ps, area, callback, callback_context, in read_exceptions()
546 memcpy(ps->area, area, ps->store->chunk_size << SECTOR_SHIFT); in read_exceptions()
726 * filled this metadata area there's nothing more to do. in persistent_commit_exception()
733 * If we completely filled the current area, then wipe the next one. in persistent_commit_exception()
747 * Advance to the next area if this one is full. in persistent_commit_exception()
773 * When current area is empty, move back to preceding area. in persistent_prepare_merge()
789 read_exception(ps, ps->area, ps->current_committed - 1, &ce); in persistent_prepare_merge()
794 * Find number of consecutive chunks within the current area, in persistent_prepare_merge()
799 read_exception(ps, ps->area, in persistent_prepare_merge()
864 ps->area = NULL; in persistent_ctr()
867 ps->next_free = NUM_SNAPSHOT_HDR_CHUNKS + 1; /* header and 1st area */ in persistent_ctr()