Re: silent semantic changes with reiser4

Martin J. Bligh
2004-08-26T21:11:13Z

> On Thu, 26 Aug 2004, Martin J. Bligh wrote:
>>
>> What would "test -d" and "test -f" return on these magic beasties? I can't
>> think of any combinations that wouldn't confuse the crap out of userspace.
>
> "It's a feature".
>
> The S_ISDIR/S_ISREG tests show real information: it shows not only user
> intent ("you should consider this a file, even if it has attributes"), but
> also whether it is a directory or a container.
>
> And there's a real technical difference there: the streams contained
> within a file are bound to that file. The files contained within a
> directory are _independent_ of that directory. Big difference. HUGE
> difference.
>
> So it's not confusing. If it tests as a file, you think of it as a file.
> It may have attributes aka named streams associated with it, and you may
> be able to open those attributes by treating the file as a directory, but
> that doesn't really change the fact that it's a file.
>
> The _big_ difference is that when you can make the compound object _look_
> like a directory, that means that you can now manage the attributes with
> standard tools. They are still attributes, though.

I think what you're saying is that they'd both return positive, right?

Unfortunately I think lots of code in userspace assumes files / directories
are mutually exclusive conditions, and acts accordingly ... eg:

if [ -f file ]
do file stuff
else
do directory stuff
fi.

Now I'm not saying they're not broken ... but seems like a dangerous thing
to change in the midst of a stable kernel series.

M.