fix compat bugs in lowlevel interface
diff --git a/lib/fuse.c b/lib/fuse.c
index 8c507d9..16eb7ad 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -2777,6 +2777,7 @@
     fuse_delete_context_key();
 }
 
+#include "fuse_common_compat.h"
 #include "fuse_compat.h"
 
 static struct fuse *fuse_new_common_compat25(int fd, struct fuse_args *args,
@@ -2802,7 +2803,7 @@
     if (!f->compat || f->compat >= 25)
         err = fuse_do_open(f, req, path, fi);
     else if (f->compat == 22) {
-        struct fuse_file_info_compat22 tmp;
+        struct fuse_file_info_compat tmp;
         memcpy(&tmp, fi, sizeof(tmp));
         fuse_prepare_interrupt(f, req, &d);
         err = ((struct fuse_operations_compat22 *) &f->op)->open(path, &tmp);
@@ -2838,7 +2839,7 @@
         return fuse_do_opendir(f, req, path, fi);
     } else {
         int err;
-        struct fuse_file_info_compat22 tmp;
+        struct fuse_file_info_compat tmp;
         struct fuse_intr_data d;
         memcpy(&tmp, fi, sizeof(tmp));
         fuse_prepare_interrupt(f, req, &d);