(Illustration by Gaich Muramatsu)
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 showpageReceived on 2005-03-31 13:35:23