From: Heiko Carstens <heiko.carstens@xxxxxxxxxx> Commit 8f0205b798f926e2745de5fdebf0a8605c621de6 "dm raid1: handle recovery failures" introduces a test_bit on an integer. test_bit is only defined to do something useful on arrays of long. Remove the test_bit code and use hand coded test bit instead. Cc: Jonathan Brassow <jbrassow@xxxxxxxxxx> Cc: Alasdair G Kergon <agk@xxxxxxxxxx> Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx> --- Completely untested, but should hopefully do what was intended. drivers/md/dm-raid1.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) Index: linux-2.6/drivers/md/dm-raid1.c =================================================================== --- linux-2.6.orig/drivers/md/dm-raid1.c +++ linux-2.6/drivers/md/dm-raid1.c @@ -758,7 +758,8 @@ static void recovery_complete(int read_e { struct region *reg = (struct region *)context; struct mirror_set *ms = reg->rh->ms; - int m, bit = 0; + unsigned int mask = 1; + int m; if (read_err) { /* Read error means the failure of default mirror. */ @@ -776,10 +777,10 @@ static void recovery_complete(int read_e for (m = 0; m < ms->nr_mirrors; m++) { if (&ms->mirror[m] == get_default_mirror(ms)) continue; - if (test_bit(bit, &write_err)) + if (write_err & mask) fail_mirror(ms->mirror + m, DM_RAID1_SYNC_ERROR); - bit++; + mask <<= 1; } } -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel