Re: [RFC] atomic create+open

From: Trond Myklebust
Date: Thu Oct 06 2005 - 12:07:59 EST


to den 06.10.2005 Klokka 19:02 (+0200) skreiv Miklos Szeredi:
> > The reason why we do it as a lookup intent is because this has to be
> > atomic lookup+create+open in order to be at all useful to NFS.
> >
> > Just doing create+open atomically is worthless since it leaves you with
> > a bunch of races where someone on the server can create, say, a symlink
> > between the RPC call to lookup and the RPC call that creates the file.
>
> That's easy to solve: filesystem returns -EAGAIN, namei_open() redoes
> the lookup and continues with the resolving. There would have to be
> some safeguard counter to avoid infinite loops.

Yech.

> Filesystem could even populate the dentry with the symlink in
> ->open_create() to optimize away the relookup.

Better.

> Do you see a problem with that?

No, but what value does an extra function call add then when you already
have lookup intents?

Cheers,
Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/