Coda File System

Re: Problem with CODA_LOOKUP (not anymore!!!)

From: E. Rosten <>
Date: Thu, 31 Mar 2005 19:34:29 +0100 (BST)
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 

> > 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!


(You can't go wrong with psycho-rats.)       (er258)(@)(

/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
Received on 2005-03-31 13:35:23