On 1/4/07, Dave Kleikamp <shaggy@xxxxxxxxxxxxxxxxxx> wrote:
On Thu, 2007-01-04 at 12:34 +0100, Jens Nie wrote: > I think i found a bug in the ext3 filesystem. It deals with > dereferencing symlinks. I have installed a fresh openSUSE 10.2 on an > ext3 filesystem.
No, it seems to be a bug in the coreutils.
I did a little playing around with strace and I suspect that it may have something to do with ext3 returning DT_LNK to the filldir routine (which gets returned through getdents64). A lot of file systems always return DT_UNKNOWN. Maybe ls is handling the DT_UNKNOWN case alright, but not the DT_LNK case. (When DT_UNKNOWN is returned, ls calls stat64() which would identify the symlink as a directory rather than a symlink.)
I guess your analysis is right. The problem is that ls only calls stat() on DT_UNKNOWN entries but it should call it on DT_LNK too.
> I reported this on the opensuse mailing list first. Someone there was > kind enough to point me directly to this list.
They forgot to tell you that not every bug is a kernel bug ;) I opened a bug in bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=231916 - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html