Bug 185450 - kernel dm: log bitset fix BE find_next_zero_bit
Summary: kernel dm: log bitset fix BE find_next_zero_bit
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Alasdair Kergon
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks: 181409
TreeView+ depends on / blocked
 
Reported: 2006-03-14 21:35 UTC by Alasdair Kergon
Modified: 2007-11-30 22:07 UTC (History)
1 user (show)

Fixed In Version: RHSA-2006-0575
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-08-10 22:41:54 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2006:0575 0 normal SHIPPED_LIVE Important: Updated kernel packages available for Red Hat Enterprise Linux 4 Update 4 2006-08-10 04:00:00 UTC

Description Alasdair Kergon 2006-03-14 21:35:54 UTC
From: Stefan Bader <shbader.com>
 
This is an addition to the endian fixes that introduce ext2_* versions
of the set and clear bit functions. The find_next_zero_bit also has to
be the ext2 one. Otherwise the mirror target tries to recover non-existent
regions beyond the end of device.
 
Signed-Off-By: Stefan Bader <shbader.com>
Signed-Off-By: Alasdair G Kergon <agk>
 
Index: linux-2.6.16-rc1/drivers/md/dm-log.c
===================================================================
--- linux-2.6.16-rc1.orig/drivers/md/dm-log.c   2006-01-23 21:22:19.000000000 +0000
+++ linux-2.6.16-rc1/drivers/md/dm-log.c        2006-02-01 20:54:50.000000000 +0000
@@ -545,7 +545,8 @@ static int core_get_resync_work(struct d
                return 0;
  
        do {
-               *region = find_next_zero_bit((unsigned long *) lc->sync_bits,
+               *region = ext2_find_next_zero_bit(
+                                            (unsigned long *) lc->sync_bits,
                                             lc->region_count,
                                             lc->sync_search);
                lc->sync_search = *region + 1;

Comment 1 Jason Baron 2006-03-28 17:54:10 UTC
committed in stream u4 build 34.9. A test kernel with this patch is available
from http://people.redhat.com/~jbaron/rhel4/


Comment 5 Red Hat Bugzilla 2006-08-10 22:41:55 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2006-0575.html



Note You need to log in before you can comment on or make changes to this bug.