[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