Lines Matching refs:free

104 nfree	      : The number of free blocks that are maintained at any given time.
120 i.e. Every write goes to a "free" block. A running list of free blocks is
122 "free list" and "log". The flog contains 'nfree' entries, and an entry contains:
126 free block.
162 writes. We can hit a condition where the writer thread grabs a free block to do
168 into the list of free blocks. If another write comes in for the same LBA, it can
169 grab this free block, and start writing to it, causing the reader to read
174 read is complete. Every writer thread, after grabbing a free block, checks the
175 RTT for its presence. If the postmap free block is in the RTT, it waits till the
185 free[lane] = map[premap_aba]
188 Both threads can update their respective free[lane] with the same old, freed
189 postmap_aba. This has made the layout inconsistent by losing a free entry, and
190 at the same time, duplicating another free entry for two lanes.
201 On startup, we analyze the BTT flog to create our list of free blocks. We walk
206 - If log_entry.new matches the map entry, then log_entry.old is free.
207 - If log_entry.new does not match the map entry, then log_entry.new is free.
230 3. Use lane to index into in-memory free list and obtain a new block, next flog
232 4. Scan the RTT to check if free block is present, and spin/wait if it is.
233 5. Write data to this free block
237 9. Write old post-map entry into the free list
238 10. Calculate next sequence number and write into the free list entry
250 sum of mapped blocks and free blocks (from the BTT flog).
251 - Rebuilding free list from the flog reveals missing/duplicate/impossible