Re: make getdents/readdir POSIX compliant wrt mount-point dirent.d_ino

From: Ulrich Drepper
Date: Tue Sep 01 2009 - 18:37:08 EST


On Tue, Sep 1, 2009 at 13:19, Theodore Tso<tytso@xxxxxxx> wrote:
> Furthermore, there are
> plenty of Unix systems that have received POSIX certifications despite
> having this behavior.

A common misunderstanding of certification.

Like for all certifications, being POSIX certified doesn't mean the
certification is valid for all situations. it only means that there
is (at least) one configuration which meets the requirements. In this
case it means the environment simply uses one single filesystem and no
mount points. This way the problem doesn't even arise.


> Fixing it is also going to be decidedly non-trivial since it depends
> on how the directory was orignally accessed. Â[...]

I guess that this is really a difficult way to solve. I wouldn't want
to pay for something which is hardly ever really used.

But there are programs out there which would like to use the inode
uniqueness. Therefore the next best thing to do is perhaps to return
a flag in the getdents information (in d_type, perhaps) to indicate
that this is a mount point and/or that there are multiple ways to
access the file in question. Then programs which can use the inode
information can be watching for this flag and enter the slow path only
if it's set.
--
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/