[JAUNTY SRU] UBUNTU: SAUCE: added memory barrier to prevent a reference counter leak.

Tim Gardner tim.gardner at canonical.com
Fri Jul 24 17:51:25 UTC 2009


Manoj Iyer wrote:
> SRU JUSTIFICATION
> 
> IMPACT: disk corruption due to a concurrent h_refcounter update which 
> produced a reference counter leak, and later error from ext3
> 
> FIX: launchpad bug #209346, is caused by atleast three known factors.
> 1. File system inconsistency
> 2. Hardware problems
> 3. Misplaced memory barrier
> 
> As noted by a contributer to this bug, the Red Hat errata suggests a fix 
> to the memory barrier issue, which this patch addresses. This patch fixes 
> only one of the reasons users are seeing data corruption on 64bit Jaunty 
> systems, and does not address the other two known reasons.
> 
> TEST: This patch was reported to work for one(3) of the 3 causes of disk 
> corruption.
> 
> The following changes since commit 
> 80a926a9ba2b651ddd717c3ed4f6429b6bb4020b:
>    Matthew Garrett (1):
>          UBUNTU: SAUCE: ACPI: Populate DIDL before registering ACPI video 
> device on Intel
> 
> are available in the git repository at:
> 
>    git://kernel.ubuntu.com/manjo/ubuntu-jaunty.git lp209346
> 
> Manoj Iyer (1):
>        UBUNTU: SAUCE: added memory barrier to prevent a reference counter 
> leak.
> 
>   fs/buffer.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
> 
> 
> From 7b75d3934b7641f74d42e007a2da52d06f4248c0 Mon Sep 17 00:00:00 2001
> From: Manoj Iyer <manoj.iyer at canonical.com>
> Date: Thu, 23 Jul 2009 13:59:20 -0500
> Subject: [PATCH] UBUNTU: SAUCE: added memory barrier to prevent a reference counter leak.
> 
> OriginalLocation: http://rhn.redhat.com/errata/RHSA-2009-0331.html
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/209346
> 
> launchpad bug #209346, is caused by atleast three known factors.
> 1. File system inconsistency
> 2. Hardware problems
> 3. Misplaced memory barrier
> 
> As noted by a contributer to this bug, the Red Hat errata suggests a fix to
> the memory barrier issue, which this patch addresses. This patch fixes only
> one of the reasons users are seeing data corruption on 64bit Jaunty systems,
> and does not address the other two known reasons.
> 
> Signed-off-by: Manoj Iyer <manoj.iyer at canonical.com>
> ---
>   fs/buffer.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/buffer.c b/fs/buffer.c
> index 7e16a78..ea2a654 100644
> --- a/fs/buffer.c
> +++ b/fs/buffer.c
> @@ -76,6 +76,7 @@ EXPORT_SYMBOL(__lock_buffer);
> 
>   void unlock_buffer(struct buffer_head *bh)
>   {
> +	smp_mb__before_clear_bit();
>   	clear_bit_unlock(BH_Lock, &bh->b_state);
>   	smp_mb__after_clear_bit();
>   	wake_up_bit(&bh->b_state, BH_Lock);

ACK

-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list