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 <geert@linux-m68k.org> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:

committed by
Richard Weinberger

parent
c0b79a90b1
commit
3ee6bd8e8d
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user