added support for setting the st_ino field
diff --git a/include/linux/fuse.h b/include/linux/fuse.h
index 21ecc47..e5f9a6c 100644
--- a/include/linux/fuse.h
+++ b/include/linux/fuse.h
@@ -9,13 +9,13 @@
 /* This file defines the kernel interface of FUSE */
 
 /** Version number of this interface */
-#define FUSE_KERNEL_VERSION 3
+#define FUSE_KERNEL_VERSION 4
 
 /** Minor version number of this interface */
 #define FUSE_KERNEL_MINOR_VERSION 1
 
-/** The inode number of the root indode */
-#define FUSE_ROOT_INO 1
+/** The node ID of the root inode */
+#define FUSE_ROOT_ID 1
 
 /** Opening this will yield a new control file */
 #define FUSE_DEV "/proc/fs/fuse/dev"
@@ -24,6 +24,7 @@
 #define FUSE_VERSION_FILE "/proc/fs/fuse/version"
 
 struct fuse_attr {
+	unsigned long       ino;
 	unsigned int        mode;
 	unsigned int        nlink;
 	unsigned int        uid;
@@ -93,8 +94,8 @@
 #define FUSE_XATTR_SIZE_MAX 4096
 
 struct fuse_entry_out {
-	unsigned long ino;         /* Inode number */
-	unsigned long generation;  /* Inode generation: ino:gen must
+	unsigned long nodeid;      /* Inode ID */
+	unsigned long generation;  /* Inode generation: nodeid:gen must
                                       be unique for the fs's lifetime */
 	unsigned long entry_valid; /* Cache timeout for the name */
 	unsigned long entry_valid_nsec;
@@ -198,7 +199,7 @@
 struct fuse_in_header {
 	int unique;
 	enum fuse_opcode opcode;
-	unsigned long ino;
+	unsigned long nodeid;
 	unsigned int uid;
 	unsigned int gid;
 	unsigned int pid;
@@ -212,7 +213,9 @@
 struct fuse_user_header {
 	int unique; /* zero */
 	enum fuse_opcode opcode;
-	unsigned long ino;
+	unsigned long nodeid;
+	unsigned long ino;  /* Needed only on 2.4.x where ino is also
+			       used for inode lookup */
 };
 
 struct fuse_dirent {