Re: [RFC,PATCH] libfs dcache_readdir() and dcache_dir_lseek() bugfix

From: Al Viro
Date: Fri Nov 04 2005 - 06:51:01 EST


On Fri, Nov 04, 2005 at 12:38:51PM +0100, jblunck@xxxxxxx wrote:
> This patch effects all users of libfs' dcache directory implementation.
>
> Old glibc implementations (e.g. glibc-2.2.5) are lseeking after every call to
> getdents(), subsequent calls to getdents() are starting to read from a wrong
> f_pos, when the directory is modified in between. Therefore not all directory
> entries are returned. IMHO this is a bug and it breaks applications, e.g. "rm
> -fr" on tmpfs.
>
> SuSV3 only says:
> "If a file is removed from or added to the directory after the most recent
> call to opendir() or rewinddir(), whether a subsequent call to readdir_r()
> returns an entry for that file is unspecified."

IOW, the applications in question are broken since they rely on unspecified
behaviour, not provided by old libc versions.
-
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/