anchor.diff:                                :format-arguments (list path))))
                    ;; free directory clusters
                    (do ((cluster-n (read-first-cluster parent-dir dir-offset)))
  -                     ((>= cluster-n (last-cluster-value fat32)))
  +                     ((>= cluster-n (last-cluster-value ffs)))
                      (let ((next (aref fat cluster-n)))
  -                     (set-fat32 fat32 fat cluster-n 0)
  +                     (set-fat32 ffs fat cluster-n 0)
                        (setf cluster-n next))))))
         (multiple-value-bind (parent-dir parent-cluster dir-offset)
             (open-file-metadata host new-path)
  
positive.code:                     :accessor buffer-position)
     (abort-action :initarg :abort-action :accessor abort-action)))
  
  (defclass fat32-file-character-stream (mezzano.gray:fundamental-character-input-stream
                                         mezzano.gray:fundamental-character-output-stream
                                         file-cache-character-stream
                                         fat32-file-stream
                                         mezzano.gray:unread-char-mixin)
    ())
  
  (defmacro with-fat32-host-locked ((host) &body body)
    `(mezzano.supervisor:with-mutex ((fat32-host-lock ,host))
       ,@body))
  
  (defun file-name (pathname)
  
negative.code:               ((and (subtypep element-type '(unsigned-byte 8))
                      (subtypep '(unsigned-byte 8) element-type))
                 (assert (eql external-format :default) (external-format))
                 (make-instance 'fat-file-stream
                                :pathname pathname
                                :host host
                                :direction direction
  