svn commit: r218480 - projects/graid/head/sys/geom/raid
Alexander Motin
mav at FreeBSD.org
Wed Feb 9 12:03:22 UTC 2011
Author: mav
Date: Wed Feb 9 12:03:22 2011
New Revision: 218480
URL: http://svn.freebsd.org/changeset/base/218480
Log:
Allow to use completed portion of REBUILD and RESYNC subdisks for read
errors recovery.
Modified:
projects/graid/head/sys/geom/raid/tr_raid1.c
Modified: projects/graid/head/sys/geom/raid/tr_raid1.c
==============================================================================
--- projects/graid/head/sys/geom/raid/tr_raid1.c Wed Feb 9 11:49:58 2011 (r218479)
+++ projects/graid/head/sys/geom/raid/tr_raid1.c Wed Feb 9 12:03:22 2011 (r218480)
@@ -806,7 +806,11 @@ g_raid_tr_iodone_raid1(struct g_raid_tr_
*mask |= 1 << sd->sd_pos;
for (i = 0; i < vol->v_disks_count; i++) {
nsd = &vol->v_subdisks[i];
- if (nsd->sd_state != G_RAID_SUBDISK_S_ACTIVE)
+ if (nsd->sd_state != G_RAID_SUBDISK_S_ACTIVE &&
+ !((nsd->sd_state == G_RAID_SUBDISK_S_REBUILD ||
+ nsd->sd_state == G_RAID_SUBDISK_S_RESYNC) &&
+ bp->bio_offset + bp->bio_length <
+ nsd->sd_rebuild_pos))
continue;
if ((*mask & (1 << i)) != 0)
continue;
More information about the svn-src-projects
mailing list