*** yaffs_fs.c 24 Oct 2006 18:09:15 -0000 1.54 --- yaffs_fs.c 15 Dec 2006 16:56:13 -0000 @@ -34,10 +34,12 @@ "$Id: yaffs_fs.c,v 1.54 2006/10/24 18:09:15 charles Exp $"; extern const char *yaffs_guts_c_version; +#include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) #include +#endif #include #include -#include #include #include #include @@ -89,7 +91,11 @@ /*#define T(x) printk x */ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) +#define yaffs_InodeToObject(iptr) ((yaffs_Object *)((iptr)->i_private)) +#else #define yaffs_InodeToObject(iptr) ((yaffs_Object *)((iptr)->u.generic_ip)) +#endif #define yaffs_DentryToObject(dptr) yaffs_InodeToObject((dptr)->d_inode) #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) @@ -189,8 +195,15 @@ }; static struct file_operations yaffs_file_operations = { +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + .read = do_sync_read, + .write = do_sync_write, + .aio_read = generic_file_aio_read, + .aio_write = generic_file_aio_write, +#else .read = generic_file_read, .write = generic_file_write, +#endif .mmap = generic_file_mmap, .flush = yaffs_file_flush, .fsync = yaffs_sync_object, @@ -408,8 +421,11 @@ * the yaffs_Object. */ obj->myInode = NULL; +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + inode->i_private = NULL; +#else inode->u.generic_ip = NULL; - +#endif /* If the object freeing was deferred, then the real * free happens now. * This should fix the inode inconsistency problem. @@ -704,7 +720,9 @@ inode->i_mode = obj->yst_mode; inode->i_uid = obj->yst_uid; inode->i_gid = obj->yst_gid; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) inode->i_blksize = inode->i_sb->s_blocksize; +#endif #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) inode->i_rdev = old_decode_dev(obj->yst_rdev); @@ -756,7 +774,11 @@ break; } +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)) + inode->i_private = obj; +#else inode->u.generic_ip = obj; +#endif obj->myInode = inode; } else { @@ -1322,7 +1344,7 @@ } - +/** static int yaffs_do_sync_fs(struct super_block *sb) { @@ -1341,7 +1363,7 @@ } return 0; } - +**/ #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17)) static void yaffs_write_super(struct super_block *sb) @@ -1947,7 +1969,7 @@ char *end, *mask_name; int i; int done = 0; - int add, len; + int add, len = 0; int pos = 0; rg = yaffs_traceMask; *** yportenv.h 21 May 2006 09:39:12 -0000 1.11 --- yportenv.h 15 Dec 2006 16:56:19 -0000 @@ -31,9 +31,11 @@ #include "moduleconfig.h" /* Linux kernel */ +#include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)) #include +#endif #include -#include #include #include #include