First, let me thank you for an incredibly prompt reply.
> On Thu, Mar 31, 2005 at 05:14:48PM +0100, E. Rosten wrote:
> > CODA_LOOKUP is issued, to which I reply with ENOENT (I assume that this is
> > the correct thing to do here). Coda then follows up with a CODA_CREATE.
>
> Returning -ENOENT is definitely the correct thing, the failed lookup
> will then result in a negative directory cache entry in the kernel
> (dentry without inode).
I have to reply with ENOENT (not -ENOENT), since the return type is
unsigned.
> > I reply with a new FID and a sensible set of attributes (I know they're
> > sensible, since I use them in the reply to CODA_GETATTR). However,
>
> Are you sure you don't want to correct the following? I don't think
> request.coda_create.attr is ever set to anything useful.
>
> gnokiifs.cpp:487
> TDEBUG("Creating remote file...");
> - reply.coda_create.attr = request.coda_create.attr;
> + reply.coda_create.attr = default_fatts;
>
> VFid = gimme_a_fid();
I have tried that, and it still produces exactly the same result.
Well, your comment just made me take another look at that block of code
(and I have already looked at it 1e99 times) and it turns out I was
forgetting to set the write size to sizeof(reply.coda_create). I think
that bit was missing because I had a nut loose on my keyboard.
Thankyou very much!
-Ed
--
(You can't go wrong with psycho-rats.) (er258)(@)(eng.cam)(.ac.uk)
/d{def}def/f{/Times findfont s scalefont setfont}d/s{10}d/r{roll}d f 5/m
{moveto}d -1 r 230 350 m 0 1 179{1 index show 88 rotate 4 mul 0 rmoveto}
for /s 15 d f pop 240 420 m 0 1 3 { 4 2 1 r sub -1 r show } for showpage