Commit f1136d02 authored by David Woodhouse's avatar David Woodhouse

[MTD] Fix !CONFIG_BLOCK compile for mtdsuper.c

As reported by Adrian Bunk, commit d5686b44
(switch mtd and dm-table to lookup_bdev()) causes the following compile
error with CONFIG_BLOCK=n:

  CC      drivers/mtd/mtdsuper.o
drivers/mtd/mtdsuper.c: In function `get_sb_mtd':
drivers/mtd/mtdsuper.c:184: error: implicit declaration of function 'lookup_bdev'
drivers/mtd/mtdsuper.c:184: warning: assignment makes pointer from integer without a cast
drivers/mtd/mtdsuper.c:197: error: implicit declaration of function 'bdput'
make[3]: *** [drivers/mtd/mtdsuper.o] Error 1

Fix it by putting the block device lookup inside #ifdef CONFIG_BLOCK
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 759da926
...@@ -125,8 +125,11 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, ...@@ -125,8 +125,11 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags,
int (*fill_super)(struct super_block *, void *, int), int (*fill_super)(struct super_block *, void *, int),
struct vfsmount *mnt) struct vfsmount *mnt)
{ {
#ifdef CONFIG_BLOCK
struct block_device *bdev; struct block_device *bdev;
int mtdnr, ret; int ret, major;
#endif
int mtdnr;
if (!dev_name) if (!dev_name)
return -EINVAL; return -EINVAL;
...@@ -178,6 +181,7 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, ...@@ -178,6 +181,7 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags,
} }
} }
#ifdef CONFIG_BLOCK
/* try the old way - the hack where we allowed users to mount /* try the old way - the hack where we allowed users to mount
* /dev/mtdblock$(n) but didn't actually _use_ the blockdev * /dev/mtdblock$(n) but didn't actually _use_ the blockdev
*/ */
...@@ -190,22 +194,25 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, ...@@ -190,22 +194,25 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags,
DEBUG(1, "MTDSB: lookup_bdev() returned 0\n"); DEBUG(1, "MTDSB: lookup_bdev() returned 0\n");
ret = -EINVAL; ret = -EINVAL;
if (MAJOR(bdev->bd_dev) != MTD_BLOCK_MAJOR)
goto not_an_MTD_device;
major = MAJOR(bdev->bd_dev);
mtdnr = MINOR(bdev->bd_dev); mtdnr = MINOR(bdev->bd_dev);
bdput(bdev); bdput(bdev);
if (major != MTD_BLOCK_MAJOR)
goto not_an_MTD_device;
return get_sb_mtd_nr(fs_type, flags, dev_name, data, mtdnr, fill_super, return get_sb_mtd_nr(fs_type, flags, dev_name, data, mtdnr, fill_super,
mnt); mnt);
not_an_MTD_device: not_an_MTD_device:
#endif /* CONFIG_BLOCK */
if (!(flags & MS_SILENT)) if (!(flags & MS_SILENT))
printk(KERN_NOTICE printk(KERN_NOTICE
"MTD: Attempt to mount non-MTD device \"%s\"\n", "MTD: Attempt to mount non-MTD device \"%s\"\n",
dev_name); dev_name);
bdput(bdev); return -EINVAL;
return ret;
} }
EXPORT_SYMBOL_GPL(get_sb_mtd); EXPORT_SYMBOL_GPL(get_sb_mtd);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment