anchor.diff:            (replace result block :start1 offset)
             (finally (return result)))))
   
  -(defmacro do-files ((arg var) disk superblock bgdt inode-n finally &body body)
  +(defmacro do-files ((arg var) disk superblock bgdt inode finally &body body)
     `(unless (do-file (lambda (,arg)
                         (do ((,var 0 (+ ,var (sys.int::ub16ref/le ,arg (+ 4 ,var)))))
                             ((= ,var (block-size-in-bytes disk superblock)) nil)
                           ,@body))
  -             ,disk ,superblock ,bgdt ,inode-n)
  +             ,disk ,superblock ,bgdt ,inode)
        ,finally))
   
   ;;; Host integration
  
positive.code:             (t (error "Unsupported element-type ~S." element-type))))))
  
  (defmethod probe-using-host ((host ext4-host) pathname)
    (multiple-value-bind (inode-n) (find-file host pathname)
      (if inode-n t nil)))
  
  (defmethod directory-using-host ((host ext4-host) pathname &key)
    (let ((inode-n (find-file host pathname))
          (disk (file-host-mount-device host))
          (superblock (superblock host))
          (bgdt (bgdt host))
          (stack '())
          (path (directory-namestring pathname)))
      (do-files (block offset) disk superblock bgdt inode-n t
        (let* ((file (read-linked-directory-entry block offset))
               (file-name (linked-directory-entry-name file))
               (type (linked-directory-entry-file-type file)))
  
negative.code:   `(mezzano.supervisor:with-mutex ((ext4-host-lock ,host))
       ,@body))
  
  (defmethod open-using-host ((host ext4-host) pathname
                              &key direction element-type if-exists if-does-not-exist external-format)
    (with-ext4-host-locked (host)
      (let ((file-inode (find-file host pathname))
            (buffer nil)
            (file-position 0)
            (file-length 0)
            (created-file nil)
            (abort-action nil))
        (if file-inode
            (setf buffer (read-file (file-host-mount-device host) (superblock host) (bgdt host) file-inode)
                  file-length (inode-size file-inode))
            (ecase if-does-not-exist
              (:error (error 'simple-file-error
                             :pathname pathname
                             :format-control "File ~A does not exist. ~S"
                             :format-arguments (list pathname (file-name pathname))))
              (:create (setf created-file t
                             abort-action :delete)
               (error ":create not implemented"))))
        (when (and (not created-file) (member direction '(:output :io)))
          (error ":output :io not implemented"))
        (cond ((or (eql element-type :default)
  