rpms/kernel/devel linux-2.6-vm-set_page_dirty_buffers-oops.patch, NONE, 1.1 kernel-2.6.spec, 1.2757, 1.2758

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Oct 10 20:45:10 UTC 2006


Author: davej

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv10417

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-vm-set_page_dirty_buffers-oops.patch 
Log Message:
Fix bug in set_page_dirty_buffers

linux-2.6-vm-set_page_dirty_buffers-oops.patch:
 buffer.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

--- NEW FILE linux-2.6-vm-set_page_dirty_buffers-oops.patch ---
>From davej  Mon Oct  9 22:38:37 2006
Return-Path: <owner-linux-mm at kvack.org>
X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on 
	pressure.kernelslacker.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,
	UNPARSEABLE_RELAY autolearn=ham version=3.1.4
Received: from pobox.devel.redhat.com [10.11.255.8]
	by pressure.kernelslacker.org with IMAP (fetchmail-6.3.4)
	for <davej at localhost> (single-drop); Mon, 09 Oct 2006 22:38:37 -0400 (EDT)
Received: from pobox.devel.redhat.com ([unix socket])
	 by pobox.devel.redhat.com (Cyrus v2.2.12-Invoca-RPM-2.2.12-3.RHEL4.1) with LMTPA;
	 Mon, 09 Oct 2006 22:37:54 -0400
X-Sieve: CMU Sieve 2.2
Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
	by pobox.devel.redhat.com (8.13.1/8.13.1) with ESMTP id k9A2bshi026022;
	Mon, 9 Oct 2006 22:37:54 -0400
Received: from mx3.redhat.com (mx3.redhat.com [172.16.48.32])
	by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k9A2brwF030536;
	Mon, 9 Oct 2006 22:37:53 -0400
Received: from kanga.kvack.org (kanga.kvack.org [66.96.29.28])
	by mx3.redhat.com (8.13.1/8.13.1) with ESMTP id k9A2blF5002025;
	Mon, 9 Oct 2006 22:37:47 -0400
Received: (root at kanga.kvack.org) by kvack.org id <S26732AbWJJChT>;
	Mon, 9 Oct 2006 22:37:19 -0400
Received: (from localhost user: 'bcrl' uid#63042 fake: STDIN
	(linux-mm at kanga.kvack.org)) by kvack.org id <S26719AbWJJChK>;
	Mon, 9 Oct 2006 22:37:10 -0400
Received: from cantor2.suse.de ([195.135.220.15]:7406 "EHLO mx2.suse.de")
	by kvack.org with ESMTP id <S26732AbWJJCg7>;
	Mon, 9 Oct 2006 22:36:59 -0400
Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx2.suse.de (Postfix) with ESMTP id 4DDF720F9F;
	Tue, 10 Oct 2006 04:36:54 +0200 (CEST)
Date: 	Tue, 10 Oct 2006 04:36:54 +0200
From: Nick Piggin <npiggin at suse.de>
To: Andrew Morton <akpm at osdl.org>, Linus Torvalds <torvalds at osdl.org>,
        Peter Zijlstra <a.p.zijlstra at chello.nl>,
        Linux Memory Management List <linux-mm at kvack.org>
Cc: Greg KH <gregkh at suse.de>
Subject: [patch] mm: bug in set_page_dirty_buffers
Message-ID: <20061010023654.GD15822 at wotan.suse.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.9i
X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.0.3
Original-Recipient: rfc822;list-linux-mm at kvack.org
Sender: owner-linux-mm at kvack.org
Precedence: bulk
X-Loop: 	owner-majordomo at kvack.org
X-RedHat-Spam-Score: 0 
Status: RO
Content-Length: 1387
Lines: 40

This was triggered, but not the fault of, the dirty page accounting
patches. Suitable for -stable as well, after it goes upstream.

Unable to handle kernel NULL pointer dereference at virtual address 0000004c
EIP is at _spin_lock+0x12/0x66
Call Trace:
 [<401766e7>] __set_page_dirty_buffers+0x15/0xc0
 [<401401e7>] set_page_dirty+0x2c/0x51
 [<40140db2>] set_page_dirty_balance+0xb/0x3b
 [<40145d29>] __do_fault+0x1d8/0x279
 [<40147059>] __handle_mm_fault+0x125/0x951
 [<401133f1>] do_page_fault+0x440/0x59f
 [<4034d0c1>] error_code+0x39/0x40
 [<08048a33>] 0x8048a33
 =======================

Signed-off-by: Nick Piggin <npiggin at suse.de>

Index: linux-2.6/fs/buffer.c
===================================================================
--- linux-2.6.orig/fs/buffer.c
+++ linux-2.6/fs/buffer.c
@@ -701,7 +701,10 @@ EXPORT_SYMBOL(mark_buffer_dirty_inode);
  */
 int __set_page_dirty_buffers(struct page *page)
 {
-	struct address_space * const mapping = page->mapping;
+	struct address_space * const mapping = page_mapping(page);
+
+	if (unlikely(!mapping))
+		return !TestSetPageDirty(page);
 
 	spin_lock(&mapping->private_lock);
 	if (page_has_buffers(page)) {

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo at kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont at kvack.org"> email at kvack.org </a>



Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2757
retrieving revision 1.2758
diff -u -r1.2757 -r1.2758
--- kernel-2.6.spec	10 Oct 2006 19:56:16 -0000	1.2757
+++ kernel-2.6.spec	10 Oct 2006 20:45:08 -0000	1.2758
@@ -522,6 +522,7 @@
 Patch2003: linux-2.6-vm-pagecnt.patch
 Patch2004: linux-2.6-vm-icp2-nonzero-gfp.patch
 Patch2005: linux-2.6-mm-prevent-oom-fixes.patch
+Patch2006: linux-2.6-vm-set_page_dirty_buffers-oops.patch
 
 # Tweak some defaults.
 Patch2100: linux-2.6-defaults-fat-utf8.patch
@@ -1170,6 +1171,8 @@
 %patch2004 -p1
 # OOM killer enhancements.
 %patch2005 -p1
+# Fix bug in set_page_dirty_buffers
+%patch2006 -p1
 
 # Changes to upstream defaults.
 # Use UTF-8 by default on VFAT.
@@ -2001,6 +2004,7 @@
 %changelog
 * Tue Oct 10 2006 Dave Jones <davej at redhat.com>
 - OOM Killer improvements.
+- Fix bug in set_page_dirty_buffers
 
 * Tue Oct 10 2006 Jon Masters <jcm at redhat.com>
 - Move symsets into /usr/src/kernels.




More information about the fedora-cvs-commits mailing list