From 3ee6bd8e8dc0c58b9ba5bab7ef8a7a131da346eb Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Fri, 27 Jan 2012 19:14:58 +0100 Subject: uml/hostfs: Propagate dirent.d_type to filldir() Currently the (optional) d_type member in struct dirent is always DT_UNKNOWN on hostfs, which may confuse buggy software using readdir(). Make sure to propagate its value from the underlying filesystem if it's available there. Signed-off-by: Geert Uytterhoeven Signed-off-by: Richard Weinberger --- fs/hostfs/hostfs_user.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'fs/hostfs/hostfs_user.c') diff --git a/fs/hostfs/hostfs_user.c b/fs/hostfs/hostfs_user.c index dd7bc38a3825..a74ad0d371c2 100644 --- a/fs/hostfs/hostfs_user.c +++ b/fs/hostfs/hostfs_user.c @@ -98,7 +98,8 @@ void *open_dir(char *path, int *err_out) } char *read_dir(void *stream, unsigned long long *pos, - unsigned long long *ino_out, int *len_out) + unsigned long long *ino_out, int *len_out, + unsigned int *type_out) { DIR *dir = stream; struct dirent *ent; @@ -109,6 +110,7 @@ char *read_dir(void *stream, unsigned long long *pos, return NULL; *len_out = strlen(ent->d_name); *ino_out = ent->d_ino; + *type_out = ent->d_type; *pos = telldir(dir); return ent->d_name; } -- cgit v1.2.3