Lines Matching refs:free

110 nfree		The number of free blocks that are maintained at any given time.
127 i.e. Every write goes to a "free" block. A running list of free blocks is
129 "free list" and "log". The flog contains 'nfree' entries, and an entry contains:
134 free block.
173 writes. We can hit a condition where the writer thread grabs a free block to do
179 into the list of free blocks. If another write comes in for the same LBA, it can
180 grab this free block, and start writing to it, causing the reader to read
185 read is complete. Every writer thread, after grabbing a free block, checks the
186 RTT for its presence. If the postmap free block is in the RTT, it waits till the
196 free[lane] = map[premap_aba]
199 Both threads can update their respective free[lane] with the same old, freed
200 postmap_aba. This has made the layout inconsistent by losing a free entry, and
201 at the same time, duplicating another free entry for two lanes.
212 On startup, we analyze the BTT flog to create our list of free blocks. We walk
218 - If log_entry.new matches the map entry, then log_entry.old is free.
219 - If log_entry.new does not match the map entry, then log_entry.new is free.
242 3. Use lane to index into in-memory free list and obtain a new block, next flog
244 4. Scan the RTT to check if free block is present, and spin/wait if it is.
245 5. Write data to this free block
249 9. Write old post-map entry into the free list
250 10. Calculate next sequence number and write into the free list entry
263 sum of mapped blocks and free blocks (from the BTT flog).
264 - Rebuilding free list from the flog reveals missing/duplicate/impossible