Date: Wed, 9 Feb 2011 12:03:22 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r218480 - projects/graid/head/sys/geom/raid Message-ID: <201102091203.p19C3MCh082916@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102091203.p19C3MCh082916>