From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: [PATCH] writeback: skip balance_dirty_pages() for in-memory fs Date: Fri, 17 Dec 2010 19:21:11 +0800 Message-ID: <20101217112111.GA8323@localhost> References: <20101213144646.341970461@intel.com> <20101213150329.002158963@intel.com> <20101217021934.GA9525@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Andrew Morton , Jan Kara , Christoph Hellwig , Trond Myklebust , Dave Chinner , Theodore Ts'o , Chris Mason , Peter Zijlstra , Mel Gorman , Rik van Riel , KOSAKI Motohiro , Greg Thelen , Minchan Kim , linux-mm , "linux-fsdevel@vger.kernel.org" , LKML To: Hugh Dickins Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org This avoids unnecessary checks and dirty throttling on tmpfs/ramfs. It also prevents [ 388.126563] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050 in the balance_dirty_pages tracepoint, which will call dev_name(mapping->backing_dev_info->dev) but shmem_backing_dev_info.dev is NULL. CC: Hugh Dickins Signed-off-by: Wu Fengguang --- mm/page-writeback.c | 3 +++ 1 file changed, 3 insertions(+) --- linux-next.orig/mm/page-writeback.c 2010-12-17 19:09:19.000000000 +0800 +++ linux-next/mm/page-writeback.c 2010-12-17 19:09:22.000000000 +0800 @@ -899,6 +899,9 @@ void balance_dirty_pages_ratelimited_nr( { struct backing_dev_info *bdi = mapping->backing_dev_info; + if (!bdi_cap_account_dirty(bdi)) + return; + current->nr_dirtied += nr_pages_dirtied; if (unlikely(!current->nr_dirtied_pause))