anchor.diff:            (freelist-metadata-end range) end)))
   
   (defun store-insert-range (start n-blocks freep)
  -  "Internal function. Insert a new range into the in-memory store freelist.
  -Should be called with the freelist lock held."
  +  "Internal function. Insert a new range into the in-memory store freelist."
     ;; Search for the entry containing this range.
     #+(or)(debug-print-line "Inserting range " start "-" (+ start n-blocks) ":" freep " into freelist")
     #+(or)(do ((range *store-freelist-head*
  
positive.code:           (return start))))))
  
  (defun store-alloc (n-blocks)
    ;; Same here.
    (release-physical-pages (pager-allocate-page :other) 1)
    (safe-without-interrupts (n-blocks)
      (with-symbol-spinlock (*store-freelist-lock*)
        (store-alloc-1 n-blocks))))
  
  (defun process-one-freelist-block (block-id)
    (with-disk-block (blk block-id)
  
negative.code: 
  (defun store-statistics ()
    "Return two values: The number of blocks free, and the total number of blocks."
    ;; Disable interrupts to avoid smearing if a snapshot is taken between the two reads.
    (safe-without-interrupts ()
      (values *store-freelist-n-free-blocks*
              *store-freelist-total-blocks*)))
  
  ;; FIXME: Need to free the old freelist/block map as well.
  (defun regenerate-store-freelist ()
    (ensure (mutex-held-p *vm-lock*) "*VM-LOCK* must be held in REGENERATE-STORE-FREELIST.")
    (let ((disk-block nil)
          (memory-block nil))
      ;; Resulting freelist needs to fit in one block.
  