anchor.diff:      (otherwise wcc-data)))
   
   (defun call-remove (dhandle filename &key (host *nfs-host*) (port *nfs-port*) protocol)
  -  (%call-remove (make-dir-op-args3 :dir dhandle :name filename)
  -		:host host
  -		:port port
  -		:protocol protocol))
  -
  +  (let ((res (%call-remove (make-dir-op-args3 :dir dhandle :name filename)
  +			   :host host
  +			   :port port
  +			   :protocol protocol)))
  +    (if (eq (xunion-tag res) :ok)
  +	(xunion-val res)
  +	(error "REMOVE failed: ~A" (xunion-tag res)))))
  +	
   (defhandler %handle-remove (args 12)
     (with-slots (dir name) args
       (let ((dhandle (find-handle dir)))
  
positive.code:     (otherwise post-op-attr)))
  
  (defun call-fs-stat (handle &key (host *nfs-host*) (port *nfs-port*) protocol)
    (%call-fs-stat handle :host host :port port :protocol protocol))
  
  (defhandler %handle-fs-stat (handle 18)
    (declare (ignore handle))
  
negative.code: ;;   (new-attrs sattr3)
  ;;   (guard sattr-guard)))
  
  (defrpc %call-set-attr 2 
    (:list nfs-fh3 sattr3 (:optional nfs-time3))
    (:union nfs-stat3
      (:ok wcc-data)
      (otherwise wcc-data)))
  
  (defun call-set-attr (handle attr &key (host *nfs-host*) (port *nfs-port*) time protocol)
    (let ((res (%call-set-attr (list handle attr time) 
  			    :host host 
  			    :port port
  			    :protocol protocol)))
      (if (eq (xunion-tag res) :ok)
  	(xunion-val res)
  	(error "SETATTR failed: ~A" (xunion-tag res)))))
  
  ;;(defhandler %handle-set-attr (args 2)
  ;;  (destructuring-bind (fh new-attrs guard) args
  ;;    (declare (ignore fh new-attrs guard))
  ;;    (make-xunion :ok (make-wcc-data))))
  