Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Miklos Szeredi
> Really? > > static int __emul_lookup_dentry(const char *name, struct nameidata *nd) > { > . > if (path_walk(name, nd) == 0) { > if (nd->dentry->d_inode) { > dput(old_dentry); > mntpu

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Trond Myklebust
ty den 09.08.2005 Klokka 22:42 (+0200) skreiv Miklos Szeredi: > Trond, wake up! __emul_lookup_dentry() does nothing of the sort. > Neither does anything else. In theory it could, but that's not a > reason to do a confusing thing like that. Really? static int __emul_lookup_dentry(const char *na

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Miklos Szeredi
> > > There is quite a bit of code out there that assumes it is free to stuff > > > things into nd->mnt and nd->dentry. Some of it is Al Viro's code, some > > > of it is from other people. > > > For instance, the ESTALE handling will just save nd->mnt/nd->dentry > > > before calling __link_path_wal

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Trond Myklebust
ty den 09.08.2005 Klokka 19:44 (+0200) skreiv Miklos Szeredi: > > There is quite a bit of code out there that assumes it is free to stuff > > things into nd->mnt and nd->dentry. Some of it is Al Viro's code, some > > of it is from other people. > > For instance, the ESTALE handling will just save

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Miklos Szeredi
> > > > > + nd->intent.open.file = NULL; > > > > > > > > Why is this NULL assignment needed? nd will not be used after this. > > > > > > > > > + } > > > > > + path_release(nd); > > > > > +} > > > > > + > > > > > > > > > > > It could be dropped. The reason for putting it in

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Trond Myklebust
ty den 09.08.2005 Klokka 18:40 (+0200) skreiv Miklos Szeredi: > > Intents are meant as optimisations, not replacements for existing > > operations. I'm therefore not really comfortable about having them > > return errors at all. > > In my case they are not an optimization, rather the only way to >

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Miklos Szeredi
> Intents are meant as optimisations, not replacements for existing > operations. I'm therefore not really comfortable about having them > return errors at all. In my case they are not an optimization, rather the only way to correctly perform an open with O_CREAT. > > > + nd->intent.open.

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Bryan Henderson
>Have you looked at how we're dealing with this in NFSv4? No. -- Bryan Henderson IBM Almaden Research Center San Jose CA Filesystems - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED]

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Trond Myklebust
ty den 09.08.2005 Klokka 08:47 (-0700) skreiv Bryan Henderson: > >Intents are meant as optimisations, not replacements for existing > >operations. I'm therefore not really comfortable about having them > >return errors at all. > > That's true of normal intents, but not what are called intents here

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Bryan Henderson
>Intents are meant as optimisations, not replacements for existing >operations. I'm therefore not really comfortable about having them >return errors at all. That's true of normal intents, but not what are called intents here. A normal intent merely expresses an intent, and it can be totally ign

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Trond Myklebust
ty den 09.08.2005 Klokka 09:46 (+0200) skreiv Miklos Szeredi: > > We've already got a patch that does this, and that I'm queueing up for > > inclusion. > > Cool! > > > http://client.linux-nfs.org/Linux-2.6.x/2.6.12/linux-2.6.12-63-open_file_intents.dif > > Comments: > > > /* > > + * Open inten

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-09 Thread Miklos Szeredi
> We've already got a patch that does this, and that I'm queueing up for > inclusion. Cool! > http://client.linux-nfs.org/Linux-2.6.x/2.6.12/linux-2.6.12-63-open_file_intents.dif Comments: > /* > + * Open intents have to release any file pointer that was allocated > + * but not used by the VFS

Re: [RFC] atomic open(..., O_CREAT | ...)

2005-08-08 Thread Trond Myklebust
ty den 09.08.2005 Klokka 00:27 (+0200) skreiv Miklos Szeredi: > I'd like to make my filesystem be able to do file creation and opening > atomically. This is needed for filesystems which cannot separate > checking open permission from the actual open operation. > > Usually any filesystem served fr

[RFC] atomic open(..., O_CREAT | ...)

2005-08-08 Thread Miklos Szeredi
I'd like to make my filesystem be able to do file creation and opening atomically. This is needed for filesystems which cannot separate checking open permission from the actual open operation. Usually any filesystem served from userspace by an unprivileged (no CAP_DAC_OVERRIDE) process will be su