Re: [Yaffs] Re: Compile yaffs on kernel 2.6.19

Top Page
Attachments:
Message as email
+ (text/plain)
+ patch.txt (text/plain)
Delete this message
Reply to this message
Author: Claudio Lanconelli
Date:  
To: yaffs mail list
Subject: Re: [Yaffs] Re: Compile yaffs on kernel 2.6.19
Frank Mandarino wrote:
> Hi Claudio,
>
> I just went through this myself. You'll need to:
>
> 1) Apply Vitaly's patch that he sent to the mailing list on Oct 5th:
> http://balloonboard.org/lurker/list/message/20061005.125332.8dd0dc4d.en.html.
>
> 2) Delete the "#include <linux/config.h>" lines from yportenv.h and
> yaffs_fs.c.
>
> Regards,
> ../fam
>


Hi Frank,
Thank you very much, I never received the message above, fortunately
there is the archive!
Now it compiles fine.
I updated the patch and included the change to <linux/config.h>, plus a
couple of warning messages
so Charles can apply it to current cvs version.

Cheers,
Claudio Lanconelli
*** 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 <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
#include <linux/config.h>
+#endif
#include <linux/kernel.h>
#include <linux/module.h>
-#include <linux/version.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/list.h>
@@ -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 <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
#include <linux/config.h>
+#endif
#include <linux/kernel.h>
-#include <linux/version.h>
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/slab.h>