Coda File System

Re: Catch 22 !

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Tue, 30 Nov 2004 14:13:10 -0500
On Mon, Nov 29, 2004 at 05:38:10AM -0500, Christer Bernérus wrote:
> I'm removing huge amounts of files in coda, and that fills up my CML 
> completely.
> 
> Now I try to get rid of the CML using cfs purgeml, and guess what:
> 
> [quake:~] bernerus% cfs purgeml 
> /coda/medic.chalmers.se/playground/testdir.375
>         DANGER:   will destroy all changes made while disconnected
>         Do you really want to do this? [n] y
>         Fools rush in where angels fear to tread ........
> VIOC_PURGEML: No space left on device

I'm not sure where this error would be generated.

The vol->PurgeMLEs function only returns ENOENT and EACCESS errors.
Before that function is called we grab a lock on the volume (v->Enter),
but there we only return EWOULDBLOCK or EINTR. Before that is where we
grab a reference to the volume. This code could _possibly_ return
ENOSPC. But only if the volume isn't already cached and we need to fetch
it from the servers, but that seems highly unlikely since it would be
pinned down by the dirty objects that are in the CML.

Maybe some intermediate volume (like the realm root) got thrown out of
the cache. We pin parent directories, but this pinning doesn't cross
volume boundaries. Hoarding suffers from the lack of pinning as well, if
I hoard my email, there is no guarantee that my client actually cached
the volumes I need to traverse to reach those files.

Jan
Received on 2004-11-30 14:15:47