anchor.diff:               (multiple-value-bind (time date) (get-fat-time)
                  (when (output-stream-p stream)
                    (finish-output stream)
  +                 (when (eql (if-exists stream) :supersede)
  +                   (deallocate-file ffs fat parent-dir file-offset)
  +                   (setf (read-first-cluster parent-dir file-offset) (buffer-position stream))
  +                   (write-fat disk ffs fat))
                    (setf (read-write-time parent-dir file-offset) time
                          (read-write-date parent-dir file-offset) date
                          (read-file-length parent-dir file-offset) (file-length stream)))
                  (setf (read-last-access-date parent-dir file-offset) date)
                  ;; Write to disk new metadata
  -               (write-directory (fat-structure host) block-device parent-cluster (fat host) parent-dir)))
  +               (write-directory ffs block-device parent-cluster fat parent-dir)))
               (t
  -             (when (eql (abort-action stream) :delete)
  -               (remove-file parent-dir file-offset block-device parent-cluster (fat-structure host) (fat host)))))))
  +             (cond ((eql (if-exists stream) :supersede)
  +                    (setf (read-first-cluster parent-dir file-offset) (buffer-position stream))
  +                    (deallocate-file ffs fat parent-dir file-offset)
  +                    (write-fat disk ffs fat))
  +                   ((eql (abort-action stream) :delete)
  +                    (remove-file parent-dir file-offset block-device parent-cluster ffs fat)))))))
     t)
   
   ;; Register the fat file system host as a block device host
  
positive.code:    (host :initarg :host :reader host)
     (if-exists :initarg :if-exists :reader if-exists)
     ;; File position where the buffer data starts.
     (buffer-position :initarg :buffer-position
                      :initform 0
                      :accessor buffer-position)
     (abort-action :initarg :abort-action :accessor abort-action)))
  
  (defclass fat-file-character-stream (fat-file-stream
  
negative.code: 
  (defmethod close ((stream fat-file-stream) &key abort)
    (let* ((host (host stream))
           (ffs (fat-structure host))
           (fat (fat host))
           (disk (file-host-mount-device host))
           (block-device (file-host-mount-device host)))
      (multiple-value-bind (parent-dir parent-cluster file-offset)
          (open-file-metadata host (file-stream-pathname stream))
  