On Fri, Apr 13, 2012 at 03:09:31PM +0200, patrick Immling wrote:
> Hi All,
> 
> I just downloaded the Android sources and the android kernel by checking
> out branch android-3.0 from this list:
> 
>   origin/HEAD -> origin/master
>   origin/android-2.6.39
>   origin/android-3.0
>   origin/android-3.3
>   origin/android-3.4
>   origin/master
> 
> 
> 
> 
> I get the following error during compilation. Please help
> 
>   CC      fs/yaffs2/yaffs_ecc.o
>   CC      fs/yaffs2/yaffs_vfs.o
> fs/yaffs2/yaffs_vfs.c:46:28: error: linux/smp_lock.h: No such file or
> directory
> fs/yaffs2/yaffs_vfs.c: In function 'yaffs_read_super':
> fs/yaffs2/yaffs_vfs.c:2383: error: implicit declaration of function
> 'get_sb_bdev'
> fs/yaffs2/yaffs_vfs.c: At top level:
> fs/yaffs2/yaffs_vfs.c:2390: error: unknown field 'get_sb' specified in
> initializer
> fs/yaffs2/yaffs_vfs.c:2390: warning: initialization makes integer from
> pointer without a cast
> fs/yaffs2/yaffs_vfs.c:2414: error: unknown field 'get_sb' specified in
> initializer
> fs/yaffs2/yaffs_vfs.c:2414: warning: initialization makes integer from
> pointer without a cast
> make[2]: *** [fs/yaffs2/yaffs_vfs.o] Error 1
> make[1]: *** [fs/yaffs2] Error 2
> make: *** [fs] Error 2
> 
> 
> Anybody chanced upon the same problem?
> 
> 
> Thank you.
> 
> -- 
> unsubscribe: android-kernel+unsubscr...@googlegroups.com
> website: http://groups.google.com/group/android-kernel

Hi Patrik!

Please, try attached patch.

Best wishes
Vladimir Murzin

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel
>From 7e5507731eb67b340a6c5d461875ba0a1307191d Mon Sep 17 00:00:00 2001
From: Vladimir Murzin <murzi...@gmail.com>
Date: Sun, 15 Apr 2012 14:16:55 +0400
Subject: [PATCH] yaffs: switch get_sb_bdev to mount_bdev

Building failure:

  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      fs/yaffs2/yaffs_vfs.o
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_read_super':
fs/yaffs2/yaffs_vfs.c:2383:2: error: implicit declaration of function 
'get_sb_bdev'
fs/yaffs2/yaffs_vfs.c: At top level:
fs/yaffs2/yaffs_vfs.c:2390:2: error: unknown field 'get_sb' specified in 
initializer
fs/yaffs2/yaffs_vfs.c:2390:2: warning: initialization makes integer from 
pointer without a cast
fs/yaffs2/yaffs_vfs.c:2414:2: error: unknown field 'get_sb' specified in 
initializer
fs/yaffs2/yaffs_vfs.c:2414:2: warning: initialization makes integer from 
pointer without a cast
make[2]: *** [fs/yaffs2/yaffs_vfs.o] Error 1
make[1]: *** [fs/yaffs2] Error 2
make: *** [fs] Error 2

.get_sb was substituted by .mount sometime ago, but yaffs has
not been fixed.

Signed-off-by: Vladimir Murzin <murzi...@gmail.com>
---
 fs/yaffs2/yaffs_vfs.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/fs/yaffs2/yaffs_vfs.c b/fs/yaffs2/yaffs_vfs.c
index d5b8753..9408e41 100644
--- a/fs/yaffs2/yaffs_vfs.c
+++ b/fs/yaffs2/yaffs_vfs.c
@@ -43,7 +43,6 @@
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/proc_fs.h>
-#include <linux/smp_lock.h>
 #include <linux/pagemap.h>
 #include <linux/mtd/mtd.h>
 #include <linux/interrupt.h>
@@ -2375,19 +2374,18 @@ static int yaffs_internal_read_super_mtd(struct 
super_block *sb, void *data,
        return yaffs_internal_read_super(1, sb, data, silent) ? 0 : -EINVAL;
 }
 
-static int yaffs_read_super(struct file_system_type *fs,
-                           int flags, const char *dev_name,
-                           void *data, struct vfsmount *mnt)
+static struct dentry *yaffs_mount(struct file_system_type *fs,
+                                 int flags, const char *dev_name, void *data)
 {
 
-       return get_sb_bdev(fs, flags, dev_name, data,
-                          yaffs_internal_read_super_mtd, mnt);
+       return mount_bdev(fs, flags, dev_name, data,
+                          yaffs_internal_read_super_mtd);
 }
 
 static struct file_system_type yaffs_fs_type = {
        .owner = THIS_MODULE,
        .name = "yaffs",
-       .get_sb = yaffs_read_super,
+       .mount = yaffs_mount,
        .kill_sb = kill_block_super,
        .fs_flags = FS_REQUIRES_DEV,
 };
@@ -2400,18 +2398,17 @@ static int yaffs2_internal_read_super_mtd(struct 
super_block *sb, void *data,
        return yaffs_internal_read_super(2, sb, data, silent) ? 0 : -EINVAL;
 }
 
-static int yaffs2_read_super(struct file_system_type *fs,
-                            int flags, const char *dev_name, void *data,
-                            struct vfsmount *mnt)
+static struct dentry *yaffs2_mount(struct file_system_type *fs,
+                                  int flags, const char *dev_name, void *data)
 {
-       return get_sb_bdev(fs, flags, dev_name, data,
-                          yaffs2_internal_read_super_mtd, mnt);
+       return mount_bdev(fs, flags, dev_name, data,
+                          yaffs2_internal_read_super_mtd);
 }
 
 static struct file_system_type yaffs2_fs_type = {
        .owner = THIS_MODULE,
        .name = "yaffs2",
-       .get_sb = yaffs2_read_super,
+       .mount = yaffs2_mount,
        .kill_sb = kill_block_super,
        .fs_flags = FS_REQUIRES_DEV,
 };
-- 
1.7.3.4

Reply via email to