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;
committed in stream u4 build 34.9. A test kernel with this patch is available from http://people.redhat.com/~jbaron/rhel4/
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