nocase:1; /* Does this need case conversion? 0=need case conversion*/
};
-#define FAT_HASH_BITS 8
-#define FAT_HASH_SIZE (1UL << FAT_HASH_BITS)
-#define FAT_HASH_MASK (FAT_HASH_SIZE-1)
+#define FAT_CACHE_NR 8 /* number of FAT cache */
+
+struct fat_cache {
+ int start_cluster; /* first cluster of the chain. */
+ int file_cluster; /* cluster number in the file. */
+ int disk_cluster; /* cluster number on disk. */
+ struct fat_cache *next; /* next cache entry */
+};
struct msdos_sb_info {
unsigned short sec_per_clus; /* sectors/cluster */
int dir_per_block; /* dir entries per block */
int dir_per_block_bits; /* log2(dir_per_block) */
- spinlock_t inode_hash_lock;
- struct hlist_head inode_hashtable[FAT_HASH_SIZE];
+ spinlock_t cache_lock;
+ struct fat_cache cache_array[FAT_CACHE_NR], *cache;
};
#endif