MCPcopy Create free account
hub / github.com/apache/trafficserver / dir_init_segment

Function dir_init_segment

src/iocore/cache/CacheDir.cc:219–232  ·  view source on GitHub ↗

adds all the directory entries in a segment to the segment freelist

Source from the content-addressed store, hash-verified

217// adds all the directory entries
218// in a segment to the segment freelist
219void
220dir_init_segment(int s, Stripe *stripe)
221{
222 stripe->directory.header->freelist[s] = 0;
223 Dir *seg = stripe->directory.get_segment(s);
224 int l, b;
225 memset(static_cast<void *>(seg), 0, SIZEOF_DIR * DIR_DEPTH * stripe->directory.buckets);
226 for (l = 1; l < DIR_DEPTH; l++) {
227 for (b = 0; b < stripe->directory.buckets; b++) {
228 Dir *bucket = dir_bucket(b, seg);
229 dir_free_entry(dir_bucket_row(bucket, l), s, stripe);
230 }
231 }
232}
233
234// break the infinite loop in directory entries
235// Note : abuse of the token bit in dir entries

Callers 2

dir_bucket_loop_fixFunction · 0.85
freelist_popFunction · 0.85

Calls 5

memsetFunction · 0.85
dir_free_entryFunction · 0.85
get_segmentMethod · 0.80
dir_bucketFunction · 0.70
dir_bucket_rowFunction · 0.70

Tested by

no test coverage detected