On Thu, Sep 21, 2000 at 04:57:37PM +0200, Piotr K. Isajew wrote:
> I'm using coda on one machine running FreeBSD whitch is both server
> and client. A few days ago I put my mailbox (qmail's Maildir/ format)
> on a coda volume.

The qmail definition for maildir is as far as Coda is concerned a little
bit broken. The `nfs-safe' renames are defined as creating a
cross-directory link, and if that succeeds, removing the source.
However, Coda doesn't support cross-directory linking.

Mutt already incorporated a patch we sent them which makes the nfs-safe
renames work correctly in a Coda filesystem. It looks something like the
following,

  int nfs_safe_rename(srcpath, destpath)
  {
      int err;
      err = link(srcpath, destpath);

+     if (err == -1 && errno == EXDEV)
+           return rename(srcpath, destpath);

      if (err == -1)
        return err;

      return unlink(srcpath);
  }
    

      
> Since then there are several problems (not connected with qmail).
> 
> Each process whitch tries to access /coda directory hangs on
> "coda_call". Sometimes I can manage to interrupt such a process with
> "Ctrl+C", and then I see something like this:

Do you have everything in the same volume? Coda locks on a per volume
basis, and some weird problem in the tree can now potentially lock
access to everything.

Is venus running? Can you turn up venus debugging (vutil -d 10) and see
if the client is actually trying to service the kernel's upcalls?

Jan

Reply via email to