[PATCH v3] mtd: Do not corrupt backing device of device node inode

Jan Kara jack at suse.cz
Wed May 5 10:27:07 EDT 2010


On Wed 05-05-10 17:17:19, Artem Bityutskiy wrote:
> On Wed, 2010-05-05 at 11:21 +0300, Kirill A. Shutemov wrote:
> > We cannot modify file->f_mapping->backing_dev_info, because it will corrupt
> > backing device of device node inode, since file->f_mapping is equal to
> > inode->i_mapping (see __dentry_open() in fs/open.c).
> > 
> > Let's introduce separate inode for MTD device with appropriate backing
> > device.
> > 
> > Signed-off-by: Kirill A. Shutemov <kirill at shutemov.name>
> > Acked-by: Jan Kara <jack at suse.cz>
> 
> I get the following build error:
> 
> [dedekind at eru l2-mtd-2.6]$ make -j8
> O=/home/dedekind/tmp/l2-mtd-2.6-x86_64/
>   GEN     /home/dedekind/tmp/l2-mtd-2.6-x86_64/Makefile
>   CHK     include/linux/version.h
>   CHK     include/generated/utsrelease.h
>   Using /home/dedekind/git/l2-mtd-2.6 as source for kernel
>   CALL    /home/dedekind/git/l2-mtd-2.6/scripts/checksyscalls.sh
>   CHK     include/generated/compile.h
>   CHK     include/linux/version.h
> make[3]: `scripts/unifdef' is up to date.
>   Building modules, stage 2.
> Kernel: arch/x86/boot/bzImage is ready  (#2)
>   MODPOST 146 modules
> ERROR: "__iget" [drivers/mtd/mtdchar.ko] undefined!
> ERROR: "inode_lock" [drivers/mtd/mtdchar.ko] undefined!
> make[2]: *** [__modpost] Error 1
> make[1]: *** [modules] Error 2
> make: *** [sub-make] Error 2
> 
> __iget and inode_lock are not exported...
  Ah, right. igrab() should be used instead of __iget inside the
inode_lock.

								Honza

-- 
Jan Kara <jack at suse.cz>
SUSE Labs, CR



More information about the linux-mtd mailing list