Re: Why side-effects on open(2) are evil. (was Re: [RFD w/info-PATCH]device arguments from lookup)

Daniel Phillips
2001-05-26T22:35:24Z

On Saturday 26 May 2001 05:07, Edgar Toernig wrote:
> Daniel Phillips wrote:
> > Oops, oh wait, there's already another open point: your breakage
> > examples both rely on opening ".". You're right, "." should always
> > be a directory and I believe that's enforced by the VFS. So we
> > don't have an example of breakage yet.
>
> That's just because I did a simple "ls". But it doesn't make a
> difference. The magicdevs _are_ directories and
>
> chdir("magicdev");
> open(".", O_RDONLY);
>
> shouldn't open the device.

It won't, the open for "." is handled in the VFS, not the filesystem -
it will open the directory. (Without needing to be told it's a
directory via O_DIRECTORY.) If you do open("magicdev") you'll get the
device, because that's handled by magicdevfs.

I'm not claiming there isn't breakage somewhere, just that we didn't
find it on this attempt.

--
Daniel