Minor addition to r242323:

Alike to BIO_WRITE, report success if at least one subdisk succeeded with
BIO_DELETE.  But unlike BIO_WRITE don't fail disk on BIO_DELETE error.

Sponsored by:	iXsystems, Inc.
MFC after:	1 month
This commit is contained in:
Alexander Motin 2012-10-29 21:08:06 +00:00
parent 21f67da7c4
commit 650e245ebf
2 changed files with 4 additions and 4 deletions

View File

@ -891,10 +891,10 @@ rebuild_round_done:
g_raid_unlock_range(sd->sd_volume, bp->bio_offset,
bp->bio_length);
}
if (pbp->bio_cmd == BIO_WRITE) {
if (pbp->bio_cmd != BIO_READ) {
if (pbp->bio_inbed == 1 || pbp->bio_error != 0)
pbp->bio_error = bp->bio_error;
if (bp->bio_error != 0) {
if (pbp->bio_cmd == BIO_WRITE && bp->bio_error != 0) {
G_RAID_LOGREQ(0, bp, "Write failed: failing subdisk.");
g_raid_tr_raid1_fail_disk(sd->sd_softc, sd, sd->sd_disk);
}

View File

@ -1118,10 +1118,10 @@ rebuild_round_done:
G_RAID_LOGREQ(2, bp, "REMAP done %d.", bp->bio_error);
g_raid_unlock_range(sd->sd_volume, virtual, bp->bio_length);
}
if (pbp->bio_cmd == BIO_WRITE) {
if (pbp->bio_cmd != BIO_READ) {
if (pbp->bio_inbed == 1 || pbp->bio_error != 0)
pbp->bio_error = bp->bio_error;
if (bp->bio_error != 0) {
if (pbp->bio_cmd == BIO_WRITE && bp->bio_error != 0) {
G_RAID_LOGREQ(0, bp, "Write failed: failing subdisk.");
g_raid_tr_raid1e_fail_disk(sd->sd_softc, sd, sd->sd_disk);
}