anchor.diff:    (reserved nil))
   
   (defun read-block-group-descriptor (superblock block offset)
  -  (if (zerop (logand +incompat-64bit+ (superblock-feature-incompat superblock)))
  -      (make-block-group-descriptor :block-bitmap (sys.int::ub32ref/le block (+ 0 offset))
  -                                   :inode-bitmap (sys.int::ub32ref/le block (+ 4 offset))
  -                                   :inode-table (sys.int::ub32ref/le block (+ 8 offset))
  -                                   :free-blocks-count (sys.int::ub16ref/le block (+ 12 offset))
  -                                   :free-inodes-count (sys.int::ub16ref/le block (+ 14 offset))
  -                                   :used-dirs-count (sys.int::ub16ref/le block (+ 16 offset)))
  +  (if (logbitp +incompat-64bit+ (superblock-feature-incompat superblock))
         (make-block-group-descriptor :block-bitmap (logior (ash (sys.int::ub32ref/le block (+ 32 offset)) 32)
                                                            (sys.int::ub32ref/le block (+ 0 offset)))
                                      :inode-bitmap (logior (ash (sys.int::ub32ref/le block (+ 36 offset)) 32)
  
positive.code: (defun read-extent (inode-block offset)
    (let ((length (sys.int::ub16ref/le inode-block (+ 4 offset))))
      (when (> length 32768)
        (error "Uninitialized extent not suported"))
      (make-extent :n-block (sys.int::ub16ref/le inode-block offset)
                   :length length
  
negative.code:                    (iter (for block-n :from (extent-start-block extent))
                           (repeat (extent-length extent))
                           (funcall fn (read-block disk superblock block-n))))))
            ((logbitp +inline-data-flag+ inode-flags)
             (funcall fn inode-block))
            (t
             (iter (for offset :from 0 :below 48 :by 4)
  