From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kara Subject: Re: [PATCH v3] mtd: Do not corrupt backing device of device node inode Date: Wed, 5 May 2010 16:27:07 +0200 Message-ID: <20100505142707.GA3938@quack.suse.cz> References: <1273047688-20947-1-git-send-email-kirill@shutemov.name> <1273069039.3702.188.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "Kirill A. Shutemov" , David Woodhouse , Jan Kara , Alexander Viro , David Howells , Alexander Shishkin , linux-mtd@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Artem Bityutskiy Return-path: Content-Disposition: inline In-Reply-To: <1273069039.3702.188.camel@localhost> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org 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 > > Acked-by: Jan Kara > > I get the following build error: > > [dedekind@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 SUSE Labs, CR