patch-2.4.10 linux/include/linux/jffs2_fs_i.h

Next file: linux/include/linux/jffs2_fs_sb.h
Previous file: linux/include/linux/jffs2.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.9/linux/include/linux/jffs2_fs_i.h linux/include/linux/jffs2_fs_i.h
@@ -0,0 +1,62 @@
+/* $Id: jffs2_fs_i.h,v 1.8 2001/04/18 13:05:28 dwmw2 Exp $ */
+
+#ifndef _JFFS2_FS_I
+#define _JFFS2_FS_I
+
+/* Include the pipe_inode_info at the beginning so that we can still
+   use the storage space in the inode when we have a pipe inode.
+   This sucks.
+*/
+
+#undef THISSUCKS /* Only for 2.2 */
+#ifdef THISSUCKS
+#include <linux/pipe_fs_i.h>
+#endif
+
+struct jffs2_inode_info {
+#ifdef THISSUCKS
+        struct pipe_inode_info pipecrap;
+#endif
+	/* We need an internal semaphore similar to inode->i_sem.
+	   Unfortunately, we can't used the existing one, because
+	   either the GC would deadlock, or we'd have to release it
+	   before letting GC proceed. Or we'd have to put ugliness
+	   into the GC code so it didn't attempt to obtain the i_sem
+	   for the inode(s) which are already locked */
+	struct semaphore sem;
+
+	/* The highest (datanode) version number used for this ino */
+	__u32 highest_version;
+
+	/* List of data fragments which make up the file */
+	struct jffs2_node_frag *fraglist;
+
+	/* There may be one datanode which isn't referenced by any of the
+	   above fragments, if it contains a metadata update but no actual
+	   data - or if this is a directory inode */
+	/* This also holds the _only_ dnode for symlinks/device nodes, 
+	   etc. */
+	struct jffs2_full_dnode *metadata;
+
+	/* Directory entries */
+	struct jffs2_full_dirent *dents;
+
+	/* Some stuff we just have to keep in-core at all times, for each inode. */
+	struct jffs2_inode_cache *inocache;
+
+	/* Keep a pointer to the last physical node in the list. We don't 
+	   use the doubly-linked lists because we don't want to increase
+	   the memory usage that much. This is simpler */
+	//	struct jffs2_raw_node_ref *lastnode;
+	__u16 flags;
+	__u8 usercompr;
+};
+
+#ifdef JFFS2_OUT_OF_KERNEL
+#define JFFS2_INODE_INFO(i) ((struct jffs2_inode_info *) &(i)->u)
+#else
+#define JFFS2_INODE_INFO(i) (&i->u.jffs2_i)
+#endif
+
+#endif /* _JFFS2_FS_I */
+

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)