X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_fs.c;h=7adff2561ff45850142d8ec470f6cbda028e4c51;hp=f25bccc944518da0581ec9fe8cc112d49c139ba3;hb=e6bcd27c750ad5410ee4a226c5cf6937ff706f0e;hpb=37fd9ec3587b5c4d497a7682522a9adfab682e51 diff --git a/yaffs_fs.c b/yaffs_fs.c index f25bccc..7adff25 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -29,10 +29,11 @@ */ -const char *yaffs_fs_c_version = "$Id: yaffs_fs.c,v 1.1 2004-12-17 04:39:04 charles Exp $"; +const char *yaffs_fs_c_version = "$Id: yaffs_fs.c,v 1.4 2005-04-24 09:20:24 charles Exp $"; extern const char *yaffs_guts_c_version; + #include #include #include @@ -63,7 +64,6 @@ extern const char *yaffs_guts_c_version; #endif - #include #include "yportenv.h" @@ -72,8 +72,8 @@ extern const char *yaffs_guts_c_version; -//unsigned yaffs_traceMask = YAFFS_TRACE_ALWAYS | YAFFS_TRACE_BAD_BLOCKS; -unsigned yaffs_traceMask = 0xFFFFFFFF; +unsigned yaffs_traceMask = YAFFS_TRACE_ALWAYS | YAFFS_TRACE_BAD_BLOCKS; +//unsigned yaffs_traceMask = 0xFFFFFFFF; #ifdef CONFIG_YAFFS_RAM_ENABLED @@ -643,8 +643,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)); - break; +#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; inode->i_fop = &yaffs_file_operations; @@ -926,8 +929,11 @@ static int yaffs_mknod(struct inode *dir, struct dentry *dentry, int mode, int r default: // Special (socket, fifo, device...) T(YAFFS_TRACE_OS,(KERN_DEBUG"yaffs_mknod: making special\n")); - obj = yaffs_MknodSpecial(parent,dentry->d_name.name,mode,current->uid, current->gid,rdev); - break; +#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,(KERN_DEBUG"yaffs_mknod: making file\n")); obj = yaffs_MknodFile(parent,dentry->d_name.name,mode,current->uid, current->gid); @@ -1613,8 +1619,8 @@ static struct file_system_type yaffs_fs_type = { .owner = THIS_MODULE, .name = "yaffs", .get_sb = yaffs_read_super, -// .kill_sb = kill_block_super, - .kill_sb = kill_litter_super, + .kill_sb = kill_block_super, +// .kill_sb = kill_litter_super, .fs_flags = FS_REQUIRES_DEV, }; #else @@ -1643,8 +1649,8 @@ static struct file_system_type yaffs2_fs_type = { .owner = THIS_MODULE, .name = "yaffs2", .get_sb = yaffs2_read_super, -// .kill_sb = kill_block_super, - .kill_sb = kill_litter_super, + .kill_sb = kill_block_super, +// .kill_sb = kill_litter_super, .fs_flags = FS_REQUIRES_DEV, }; #else @@ -1673,8 +1679,8 @@ static struct file_system_type yaffs_ram_fs_type = { .owner = THIS_MODULE, .name = "yaffsram", .get_sb = yaffs_ram_read_super, -// .kill_sb = kill_block_super, - .kill_sb = kill_litter_super, + .kill_sb = kill_block_super, +// .kill_sb = kill_litter_super, .fs_flags = FS_SINGLE, }; #else @@ -1702,8 +1708,8 @@ static struct file_system_type yaffs2_ram_fs_type = { .owner = THIS_MODULE, .name = "yaffs2ram", .get_sb = yaffs2_ram_read_super, -// .kill_sb = kill_block_super, - .kill_sb = kill_litter_super, + .kill_sb = kill_block_super, +// .kill_sb = kill_litter_super, .fs_flags = FS_SINGLE, }; #else @@ -1913,3 +1919,4 @@ MODULE_DESCRIPTION("YAFFS2 - a NAND specific flash file system"); MODULE_AUTHOR("Charles Manning, Aleph One Ltd., 2002,2003,2004"); MODULE_LICENSE("GPL"); +