From d045a9be5e30b0ae251fb9f589bfa457c8d56c7d Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Sat, 11 Nov 2006 10:11:55 +0000 Subject: fix --- ChangeLog | 7 ++++++- cache.c | 12 +++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f793d2..b933cc5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,12 @@ +2006-11-10 Miklos Szeredi + + * Fix bug which ommitted directory entries for symlinks with the + -ofollow_symlinks option. Bug reported by Mikael Ståldal + 2006-09-29 Miklos Szeredi * Fix segfault if there are outstanding writes to the server after - release on the file descriptor. The only happened on FreeBSD. + release on the file descriptor. This only happened on FreeBSD. Reported by Andriy Gapon 2006-08-18 Miklos Szeredi diff --git a/cache.c b/cache.c index 3fbecfa..d17e735 100644 --- a/cache.c +++ b/cache.c @@ -250,12 +250,14 @@ static int cache_dirfill(fuse_cache_dirh_t ch, const char *name, const struct stat *stbuf) { int err = ch->filler(ch->h, name, 0, 0); - if (!err && (stbuf->st_mode & S_IFMT)) { - char *fullpath; + if (!err) { g_ptr_array_add(ch->dir, g_strdup(name)); - fullpath = g_strdup_printf("%s/%s", !ch->path[1] ? "" : ch->path, name); - cache_add_attr(fullpath, stbuf); - g_free(fullpath); + if (stbuf->st_mode & S_IFMT) { + char *fullpath = + g_strdup_printf("%s/%s", !ch->path[1] ? "" : ch->path, name); + cache_add_attr(fullpath, stbuf); + g_free(fullpath); + } } return err; } -- cgit v1.2.3