*/
-const char *yaffs_fs_c_version = "$Id: yaffs_fs.c,v 1.37 2005-01-06 23:28:34 charles Exp $";
+const char *yaffs_fs_c_version = "$Id: yaffs_fs.c,v 1.40 2005-06-25 03:22:23 charles Exp $";
extern const char *yaffs_guts_c_version;
switch (obj->st_mode & S_IFMT)
{
default: // fifo, device or socket
- init_special_inode(inode, obj->st_mode,(dev_t)(obj->st_rdev));
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ init_special_inode(inode, obj->st_mode,old_decode_dev(obj->st_rdev));
+#else
+ init_special_inode(inode, obj->st_mode,(dev_t)(obj->st_rdev));
+#endif
break;
case S_IFREG: // file
inode->i_op = &yaffs_file_inode_operations;
default:
// Special (socket, fifo, device...)
T(YAFFS_TRACE_OS,("yaffs_mknod: making special\n"));
- obj = yaffs_MknodSpecial(parent,dentry->d_name.name,mode,current->uid, current->gid,rdev);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ obj = yaffs_MknodSpecial(parent,dentry->d_name.name,mode,current->uid, current->gid,old_encode_dev(rdev));
+#else
+ obj = yaffs_MknodSpecial(parent,dentry->d_name.name,mode,current->uid, current->gid,rdev);
+#endif
break;
case S_IFREG: // file
T(YAFFS_TRACE_OS,("yaffs_mknod: making file\n"));
dev->genericDevice = NULL; // Not used for RAM emulation.
nBlocks = YAFFS_RAM_EMULATION_SIZE / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK);
- dev->startBlock = 1; // Don't use block 0
+ dev->startBlock = 0;
dev->endBlock = nBlocks - 1;
dev->nChunksPerBlock = YAFFS_CHUNKS_PER_BLOCK;
dev->nBytesPerChunk = YAFFS_BYTES_PER_CHUNK;
dev->nReservedBlocks = 5;
+ dev->nShortOpCaches = 10; // Enable short op caching
dev->writeChunkToNAND = nandemul_WriteChunkToNAND;
dev->readChunkFromNAND = nandemul_ReadChunkFromNAND;
// Set up the memory size parameters....
nBlocks = mtd->size / (YAFFS_CHUNKS_PER_BLOCK * YAFFS_BYTES_PER_CHUNK);
- dev->startBlock = 1; // Don't use block 0
+ dev->startBlock = 0;
dev->endBlock = nBlocks - 1;
dev->nChunksPerBlock = YAFFS_CHUNKS_PER_BLOCK;
dev->nBytesPerChunk = YAFFS_BYTES_PER_CHUNK;
buf +=sprintf(buf,"nUnlinkedFiles..... %d\n",dev->nUnlinkedFiles);
buf +=sprintf(buf,"nBackgroudDeletions %d\n",dev->nBackgroundDeletions);
buf +=sprintf(buf,"useNANDECC......... %d\n",dev->useNANDECC);
+ buf +=sprintf(buf,"nShortOpCaches..... %d\n",dev->nShortOpCaches);
return buf;
MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002");
MODULE_LICENSE("GPL");
+