getdir related API change
diff --git a/include/fuse.h b/include/fuse.h
index 705c4fd..8a0fd3c 100644
--- a/include/fuse.h
+++ b/include/fuse.h
@@ -27,6 +27,10 @@
 #include <sys/statfs.h>
 #include <utime.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* ----------------------------------------------------------- *
  * Basic FUSE API                                              *
  * ----------------------------------------------------------- */
@@ -42,8 +46,14 @@
  * @param h the handle passed to the getdir() operation
  * @param name the file name of the directory entry
  * @param type the file type (0 if unknown)  see <dirent.h>
+ * @param ino the inode number, ignored if "use_ino" mount option is
+ *            not specified
  * @return 0 on success, -errno on error
  */
+typedef int (*fuse_dirfil2_t) (fuse_dirh_t h, const char *name, int type,
+                               ino_t ino);
+
+/** Obsolete version of the above function */
 typedef int (*fuse_dirfil_t) (fuse_dirh_t h, const char *name, int type);
 
 /**
@@ -106,7 +116,7 @@
 struct fuse_operations {
     int (*getattr)     (const char *, struct stat *);
     int (*readlink)    (const char *, char *, size_t);
-    int (*getdir)      (const char *, fuse_dirh_t, fuse_dirfil_t);
+    int (*getdir)      (const char *, fuse_dirh_t, fuse_dirfil2_t);
     int (*mknod)       (const char *, mode_t, dev_t);
     int (*mkdir)       (const char *, mode_t);
     int (*unlink)      (const char *);
@@ -137,12 +147,9 @@
     uid_t uid;
     gid_t gid;
     pid_t pid;
+    void *private_data;
 };
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /*
  * Main function of FUSE.
  *
@@ -271,7 +278,6 @@
  */
 int fuse_is_lib_option(const char *opt);
 
-
 /* ----------------------------------------------------------- *
  * Advanced API for event handling, don't worry about this...  *
  * ----------------------------------------------------------- */