kernel.org 2.6.11.11
[linux-2.6.git] / include / linux / msdos_fs_i.h
index f2383d2..b50018c 100644 (file)
@@ -7,10 +7,14 @@
  * MS-DOS file system inode data in memory
  */
 
+#define FAT_CACHE_VALID        0       /* special case for valid cache */
+
 struct msdos_inode_info {
-       /* cache of lastest accessed cluster */
-       int file_cluster;       /* cluster number in the file. */
-       int disk_cluster;       /* cluster number on disk. */
+       spinlock_t cache_lru_lock;
+       struct list_head cache_lru;
+       int nr_caches;
+       /* for avoiding the race between fat_free() and fat_get_cluster() */
+       unsigned int cache_valid_id;
 
        loff_t mmu_private;
        int i_start;    /* first cluster or 0 */
@@ -18,7 +22,7 @@ struct msdos_inode_info {
        int i_attrs;    /* unused attribute bits */
        int i_ctime_ms; /* unused change time in milliseconds */
        loff_t i_pos;   /* on-disk position of directory entry or 0 */
-       struct list_head i_fat_hash;    /* hash by i_location */
+       struct hlist_node i_fat_hash;   /* hash by i_location */
        struct inode vfs_inode;
 };