fixes
diff --git a/lib/fuse.c b/lib/fuse.c
index 72fd59a..64696b8 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -73,13 +73,6 @@
static struct fuse_context *(*fuse_getcontext)(void) = NULL;
-/* Compatibility with kernel ABI version 5.1 */
-struct fuse_getdir_out {
- __u32 fd;
-};
-
-#define FUSE_GETDIR 7
-
static const char *opname(enum fuse_opcode opcode)
{
switch (opcode) {
@@ -89,7 +82,6 @@
case FUSE_SETATTR: return "SETATTR";
case FUSE_READLINK: return "READLINK";
case FUSE_SYMLINK: return "SYMLINK";
- case FUSE_GETDIR: return "GETDIR";
case FUSE_MKNOD: return "MKNOD";
case FUSE_MKDIR: return "MKDIR";
case FUSE_UNLINK: return "UNLINK";
@@ -1523,7 +1515,23 @@
struct fuse_open_out outarg;
struct fuse_dirhandle *dh;
- (void) arg;
+ if (f->op.opendir) {
+ char *path;
+ res = -ENOENT;
+ path = get_path(f, in->nodeid);
+ if (path != NULL) {
+ struct fuse_file_info fi;
+ memset(&fi, 0, sizeof(fi));
+ fi.flags = arg->flags;
+ res = f->op.opendir(path, &fi);
+ free(path);
+ }
+ if (res != 0) {
+ send_reply(f, in, res, NULL, 0);
+ return;
+ }
+ }
+
memset(&outarg, 0, sizeof(outarg));
res = -ENOMEM;
dh = (struct fuse_dirhandle *) malloc(sizeof(struct fuse_dirhandle));