Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932588AbXAWA2L (ORCPT ); Mon, 22 Jan 2007 19:28:11 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932591AbXAWA1m (ORCPT ); Mon, 22 Jan 2007 19:27:42 -0500 Received: from ns2.suse.de ([195.135.220.15]:37712 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932583AbXAWA1R (ORCPT ); Mon, 22 Jan 2007 19:27:17 -0500 From: NeilBrown To: Andrew Morton Date: Tue, 23 Jan 2007 11:26:52 +1100 Message-Id: <1070123002652.29462@suse.de> X-face: [Gw_3E*Gng}4rRrKRYotwlE?.2|**#s9D Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1200 Lines: 33 When 'repair' finds a block that is different one the various parts of the mirror. it is meant to write a chosen good version to the others. However it currently writes out the original data to each. The memcpy to make all the data the same is missing. Signed-off-by: Neil Brown ### Diffstat output ./drivers/md/raid1.c | 5 +++++ 1 file changed, 5 insertions(+) diff .prev/drivers/md/raid1.c ./drivers/md/raid1.c --- .prev/drivers/md/raid1.c 2007-01-23 11:13:45.000000000 +1100 +++ ./drivers/md/raid1.c 2007-01-23 11:23:43.000000000 +1100 @@ -1221,6 +1221,11 @@ static void sync_request_write(mddev_t * sbio->bi_sector = r1_bio->sector + conf->mirrors[i].rdev->data_offset; sbio->bi_bdev = conf->mirrors[i].rdev->bdev; + for (j = 0; j < vcnt ; j++) + memcpy(page_address(sbio->bi_io_vec[j].bv_page), + page_address(pbio->bi_io_vec[j].bv_page), + PAGE_SIZE); + } } } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/