X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs%2F.git;a=blobdiff_plain;f=yaffs_fs.c;h=715a71b88c15802f1bd8fec844a944beed18f138;hp=a00ef1bc275f86fd2ac0349143f18475e2bcb994;hb=f4fcac8940762ee7a3d606ddb3dd4ab7d9ac7868;hpb=7b5f93e758d963355b31ce0a1f0eafa16074f35d diff --git a/yaffs_fs.c b/yaffs_fs.c index a00ef1b..715a71b 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -29,7 +29,7 @@ */ -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; @@ -640,7 +640,11 @@ static void yaffs_FillInodeFromObject(struct inode *inode, yaffs_Object *obj) 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; @@ -904,7 +908,11 @@ static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode, int r 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")); @@ -1318,11 +1326,12 @@ static struct super_block *yaffs_internal_read_super(int useRam, struct super_bl 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; @@ -1417,7 +1426,7 @@ static struct super_block *yaffs_internal_read_super(int useRam, struct super_bl // 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; @@ -1582,6 +1591,7 @@ static char * yaffs_dump_dev(char *buf,yaffs_Device *dev,char *name) 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; @@ -1712,3 +1722,4 @@ MODULE_DESCRIPTION("YAFFS - a NAND specific flash file system"); MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002"); MODULE_LICENSE("GPL"); +