From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boaz Harrosh Subject: [RFC] vfs/inode: For none-block-based filesystems default to sb->s_bdi Date: Mon, 04 Oct 2010 17:46:05 -0400 Message-ID: <4CAA4B1D.1010904@panasas.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Trond Myklebust , Benny Halevy To: Jan Kara , Christoph Hellwig , Al Viro , linux-fsdevel Return-path: Received: from daytona.panasas.com ([67.152.220.89]:15504 "EHLO daytona.int.panasas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751152Ab0JDVqQ (ORCPT ); Mon, 4 Oct 2010 17:46:16 -0400 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: In alloc_inode (inode_init_always) in the case that sb->s_bdev is NULL. Should we not use sb->s_bdi as the default mapping->backing_dev_info? This fixes my none-block-based filesystem recent WARN_ON at fs/fs-writeback.c:87 inode_to_bdi() If not done here I'll need to do this in 5 different cases in FS code. (OK the code could enjoy some re-factoring). It does look logical the question is how many FSs will now get broken? Signed-off-by: Boaz Harrosh --- fs/inode.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fs/inode.c b/fs/inode.c index 8646433..200314f 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -181,6 +181,8 @@ int inode_init_always(struct super_block *sb, struct inode *inode) bdi = sb->s_bdev->bd_inode->i_mapping->backing_dev_info; mapping->backing_dev_info = bdi; + } else { + mapping->backing_dev_info = sb->s_bdi; } inode->i_private = NULL; inode->i_mapping = mapping; -- 1.7.2