mirror of
https://github.com/libfuse/libfuse.git
synced 2024-11-23 12:14:15 +08:00
passthrough_hp: include . and .. in readdir
generic/401 fails currently because it checks that "." and ".." are listed as directory entries. Include "." and ".." as listed directory entries in passthrough_hp's readdir implementation. Signed-off by: Joanne Koong <joannelkoong@gmail.com>
This commit is contained in:
parent
366f6a6a9a
commit
170edc6a8e
@ -747,15 +747,20 @@ static void do_readdir(fuse_req_t req, fuse_ino_t ino, size_t size,
|
||||
break; // End of stream
|
||||
}
|
||||
d->offset = entry->d_off;
|
||||
if (is_dot_or_dotdot(entry->d_name))
|
||||
continue;
|
||||
|
||||
fuse_entry_param e{};
|
||||
size_t entsize;
|
||||
if (plus) {
|
||||
if (is_dot_or_dotdot(entry->d_name)) {
|
||||
/* fuse kernel ignores attributes for these and also does
|
||||
* not increase lookup count (see fuse_direntplus_link) */
|
||||
e.attr.st_ino = entry->d_ino;
|
||||
e.attr.st_mode = entry->d_type << 12;
|
||||
} else {
|
||||
err = do_lookup(ino, entry->d_name, &e);
|
||||
if (err)
|
||||
goto error;
|
||||
}
|
||||
entsize = fuse_add_direntry_plus(req, p, rem, entry->d_name, &e, entry->d_off);
|
||||
} else {
|
||||
e.attr.st_ino = entry->d_ino;
|
||||
|
Loading…
Reference in New Issue
Block a user