anchor.diff:        (return-from ata-write nil))
       (when (eql count 0)
         (return-from ata-write t))
  -    (with-mutex ((ata-controller-use-lock controller))
  +    (with-mutex ((ata-controller-command-lock controller))
         (with-mutex ((ata-controller-access-lock controller))
           (when (not (ata-issue-lba28-command device lba count +ata-command-write-sectors+))
             (return-from ata-write nil))
  
positive.code:       (return-from ata-read nil))
      (when (eql count 0)
        (return-from ata-read t))
      (with-mutex ((ata-controller-use-lock controller))
        (with-mutex ((ata-controller-access-lock controller))
          (when (not (ata-issue-lba28-command device lba count +ata-command-read-sectors+))
            (return-from ata-read nil))
  
negative.code:   (declare (ignore timeout))
    ;; FIXME: Timeouts.
    (let ((controller (ata-device-controller device)))
      (setf (ata-controller-irq-delivered controller) nil)
      (loop
         (condition-wait (ata-controller-irq-cvar controller)
                         (ata-controller-access-lock controller))
         (when (ata-controller-irq-delivered controller)
           (return)))))
  
  (defun ata-pio-data-in (device count mem-addr)
    "Implement the PIO data-in protocol."
  